66 lines
1.5 KiB
Elixir
66 lines
1.5 KiB
Elixir
# Script for populating the database. You can run it as:
|
|
#
|
|
# mix run priv/repo/seeds.exs
|
|
#
|
|
# Inside the script, you can read and write to any of your
|
|
# repositories directly:
|
|
#
|
|
# Chesstrainer.Repo.insert!(%Chesstrainer.SomeSchema{})
|
|
#
|
|
# 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.")
|