port over some more
This commit is contained in:
55
lib/odinsea/database/schema/alliance.ex
Normal file
55
lib/odinsea/database/schema/alliance.ex
Normal file
@@ -0,0 +1,55 @@
|
||||
defmodule Odinsea.Database.Schema.Alliance do
|
||||
@moduledoc """
|
||||
Ecto schema for the alliances table.
|
||||
Represents guild alliances.
|
||||
"""
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
|
||||
@primary_key {:id, :id, autogenerate: true}
|
||||
|
||||
schema "alliances" do
|
||||
field :name, :string
|
||||
field :leaderid, :integer
|
||||
field :guild1, :integer
|
||||
field :guild2, :integer
|
||||
field :guild3, :integer, default: 0
|
||||
field :guild4, :integer, default: 0
|
||||
field :guild5, :integer, default: 0
|
||||
field :rank1, :string, default: "Master"
|
||||
field :rank2, :string, default: "Jr.Master"
|
||||
field :rank3, :string, default: "Member"
|
||||
field :rank4, :string, default: "Member"
|
||||
field :rank5, :string, default: "Member"
|
||||
field :capacity, :integer, default: 2
|
||||
field :notice, :string, default: ""
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for creating an alliance.
|
||||
"""
|
||||
def creation_changeset(alliance, attrs) do
|
||||
alliance
|
||||
|> cast(attrs, [:name, :leaderid, :guild1, :guild2, :capacity])
|
||||
|> validate_required([:name, :leaderid, :guild1, :guild2])
|
||||
|> validate_length(:name, min: 1, max: 13)
|
||||
|> unique_constraint(:name)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for updating alliance guilds.
|
||||
"""
|
||||
def guilds_changeset(alliance, attrs) do
|
||||
alliance
|
||||
|> cast(attrs, [:guild1, :guild2, :guild3, :guild4, :guild5])
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for updating alliance ranks.
|
||||
"""
|
||||
def ranks_changeset(alliance, attrs) do
|
||||
alliance
|
||||
|> cast(attrs, [:rank1, :rank2, :rank3, :rank4, :rank5])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user