basic admin endgame view and add
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
defmodule Chesstrainer.Repo.Migrations.CreateTags do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create table(:tags) do
|
||||
add :name, :string
|
||||
add :category, :string
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
|
||||
create unique_index(:tags, [:name, :category])
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,23 @@
|
||||
defmodule Chesstrainer.Repo.Migrations.CreateEndgames do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create table(:endgames, primary_key: false) do
|
||||
add :id, :binary_id, primary_key: true
|
||||
add :fen, :string
|
||||
add :color, :string
|
||||
add :key, :string
|
||||
add :message, :text
|
||||
add :notes, :text
|
||||
add :result, :string
|
||||
add :rating, :integer, default: 1500
|
||||
add :rating_deviation, :integer, default: 350
|
||||
add :times_attempted, :integer, default: 0
|
||||
add :times_solved, :integer, default: 0
|
||||
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
|
||||
create unique_index(:endgames, [:fen])
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
defmodule Chesstrainer.Repo.Migrations.CreateEndgamesTags do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create table(:endgames_tags, primary_key: false) do
|
||||
add :endgame_id, references(:endgames, type: :binary_id, on_delete: :delete_all)
|
||||
add :tag_id, references(:tags, on_delete: :delete_all)
|
||||
end
|
||||
|
||||
create unique_index(:endgames_tags, [:endgame_id, :tag_id])
|
||||
end
|
||||
end
|
||||
@@ -9,3 +9,57 @@
|
||||
#
|
||||
# We recommend using the bang functions (`insert!`, `update!`
|
||||
# and so on) as they will fail if something goes wrong.
|
||||
|
||||
alias Chesstrainer.Repo
|
||||
alias Chesstrainer.Endgames.Endgame
|
||||
alias Chesstrainer.Tags.Tag
|
||||
|
||||
now = DateTime.utc_now() |> DateTime.truncate(:second)
|
||||
|
||||
IO.puts("🌱 Seeding basic endgames into DB...")
|
||||
|
||||
Repo.insert_all(Endgame, [
|
||||
%{
|
||||
id: Ecto.UUID.generate(),
|
||||
fen: "8/8/3k4/8/8/3K1R2/8/8 w - - 0 1",
|
||||
color: :white,
|
||||
key: "KR v K",
|
||||
message: "Rook vs king endgame",
|
||||
notes: "Basic rook endgame",
|
||||
result: :win,
|
||||
inserted_at: now,
|
||||
updated_at: now
|
||||
},
|
||||
%{
|
||||
id: Ecto.UUID.generate(),
|
||||
fen: "6k1/5p2/6p1/8/7p/8/6PP/6K1 b - - 0 0",
|
||||
color: :black,
|
||||
key: "KPPP v KPP",
|
||||
message: "3 pawns vs 2 pawns",
|
||||
notes: "https://www.chessgames.com/perl/chessgame?gid=1017147",
|
||||
result: :win,
|
||||
inserted_at: now,
|
||||
updated_at: now
|
||||
}
|
||||
])
|
||||
|
||||
IO.puts("✅ Done seeding endgames.")
|
||||
|
||||
IO.puts("🌱 Seeding endgame tags into DB...")
|
||||
|
||||
Repo.insert_all(Tag, [
|
||||
%{
|
||||
name: "mate in 2",
|
||||
category: :endgame,
|
||||
inserted_at: now,
|
||||
updated_at: now
|
||||
},
|
||||
%{
|
||||
name: "mate in 3",
|
||||
category: :endgame,
|
||||
inserted_at: now,
|
||||
updated_at: now
|
||||
}
|
||||
])
|
||||
|
||||
IO.puts("✅ Done seeding endgame tags.")
|
||||
|
||||
Reference in New Issue
Block a user