diff --git a/lib/boardwise/coaches.ex b/lib/boardwise/coaches.ex index e9c75be..a0f8aa6 100644 --- a/lib/boardwise/coaches.ex +++ b/lib/boardwise/coaches.ex @@ -86,7 +86,7 @@ defmodule BoardWise.Coaches do |> selected_as(:score) } ) - |> order_by(desc: selected_as(:score), asc: :username) + |> order_by(desc: selected_as(:score), asc: :position, asc: :username, asc: :id) |> limit(^page_size) |> offset(^((page_no - 1) * page_size)) |> Repo.all(prefix: @prefix) diff --git a/lib/boardwise/coaches/coach.ex b/lib/boardwise/coaches/coach.ex index 31f12dc..23dd678 100644 --- a/lib/boardwise/coaches/coach.ex +++ b/lib/boardwise/coaches/coach.ex @@ -24,9 +24,10 @@ defmodule BoardWise.Coaches.Coach do field :image_url, :string field :title, :string field :languages, {:array, :string} + field :rapid, :integer field :blitz, :integer field :bullet, :integer - field :rapid, :integer + field :position, :integer # virtual fields field :score, :integer, virtual: true @@ -44,7 +45,8 @@ defmodule BoardWise.Coaches.Coach do :languages, :rapid, :blitz, - :bullet + :bullet, + :position ]) |> validate_required([:site, :username]) |> unique_constraint(:site_username_unique, name: :site_username_unique) diff --git a/priv/repo/migrations/20231207150628_position.exs b/priv/repo/migrations/20231207150628_position.exs new file mode 100644 index 0000000..926131d --- /dev/null +++ b/priv/repo/migrations/20231207150628_position.exs @@ -0,0 +1,11 @@ +defmodule BoardWise.Repo.Migrations.Position do + use Ecto.Migration + + @prefix "coach_scraper" + + def change do + alter table(:export, prefix: @prefix) do + add :position, :integer + end + end +end