From 367d751af02d9d865b9e2696fc0e7c0327363d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro?= Date: Sun, 5 May 2024 02:33:00 +0200 Subject: [PATCH] update db: make puuid unique, add status column --- .../lib/lol_analytics/player/player_repo.ex | 7 +++++-- .../lib/lol_analytics/player/player_schema.ex | 1 + .../priv/repo/migrations/20240502203545_player.exs | 2 +- .../20240504132731_match_and_player_status.exs | 13 +++++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 apps/lol_analytics/priv/repo/migrations/20240504132731_match_and_player_status.exs diff --git a/apps/lol_analytics/lib/lol_analytics/player/player_repo.ex b/apps/lol_analytics/lib/lol_analytics/player/player_repo.ex index a6957a4..b2f24a8 100644 --- a/apps/lol_analytics/lib/lol_analytics/player/player_repo.ex +++ b/apps/lol_analytics/lib/lol_analytics/player/player_repo.ex @@ -18,9 +18,12 @@ defmodule LolAnalytics.Player.PlayerRepo do LoLAnalytics.Repo.one(query) end - def insert_player(puuid) do + @spec insert_player(String.t(), keyword()) :: %PlayerSchema{} + def insert_player(puuid, attrs \\ %{}) do + attrs = Map.merge(%{puuid: puuid, region: "EUW", status: "queued"}, attrs) + %PlayerSchema{} - |> PlayerSchema.changeset(%{puuid: puuid, region: "EUW"}) + |> PlayerSchema.changeset(attrs) |> LoLAnalytics.Repo.insert() end diff --git a/apps/lol_analytics/lib/lol_analytics/player/player_schema.ex b/apps/lol_analytics/lib/lol_analytics/player/player_schema.ex index 1917977..d46b540 100644 --- a/apps/lol_analytics/lib/lol_analytics/player/player_schema.ex +++ b/apps/lol_analytics/lib/lol_analytics/player/player_schema.ex @@ -18,5 +18,6 @@ defmodule LolAnalytics.Player.PlayerSchema do player |> cast(params, [:puuid, :region, :last_processed_at]) |> validate_required([:puuid, :region, :last_processed_at]) + |> unique_constraint(:puuid) end end diff --git a/apps/lol_analytics/priv/repo/migrations/20240502203545_player.exs b/apps/lol_analytics/priv/repo/migrations/20240502203545_player.exs index 80afba2..b9dc3fc 100644 --- a/apps/lol_analytics/priv/repo/migrations/20240502203545_player.exs +++ b/apps/lol_analytics/priv/repo/migrations/20240502203545_player.exs @@ -3,7 +3,7 @@ defmodule LoLAnalytics.Repo.Migrations.Player do def change do create table("player") do - add :puuid, :string + add :puuid, :string, primary_key: true add :region, :string add :last_processed_at, :utc_datetime timestamps() diff --git a/apps/lol_analytics/priv/repo/migrations/20240504132731_match_and_player_status.exs b/apps/lol_analytics/priv/repo/migrations/20240504132731_match_and_player_status.exs new file mode 100644 index 0000000..69aee33 --- /dev/null +++ b/apps/lol_analytics/priv/repo/migrations/20240504132731_match_and_player_status.exs @@ -0,0 +1,13 @@ +defmodule LoLAnalytics.Repo.Migrations.MatchAndPlayerStatus do + use Ecto.Migration + + def change do + alter table("match") do + add :status, :string, default: "processed" + end + + alter table("player") do + add :status, :string, default: "processed" + end + end +end