port over some more
This commit is contained in:
63
lib/odinsea/database/schema/guild.ex
Normal file
63
lib/odinsea/database/schema/guild.ex
Normal file
@@ -0,0 +1,63 @@
|
||||
defmodule Odinsea.Database.Schema.Guild do
|
||||
@moduledoc """
|
||||
Ecto schema for the guilds table.
|
||||
Represents guild data in the game.
|
||||
"""
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
|
||||
@primary_key {:guildid, :id, autogenerate: true}
|
||||
|
||||
schema "guilds" do
|
||||
field :leader, :integer, default: 0
|
||||
field :gp, :integer, default: 0, source: :GP
|
||||
field :logo, :integer
|
||||
field :logo_color, :integer, default: 0, source: :logoColor
|
||||
field :name, :string
|
||||
field :rank1title, :string, default: "Master"
|
||||
field :rank2title, :string, default: "Jr. Master"
|
||||
field :rank3title, :string, default: "Member"
|
||||
field :rank4title, :string, default: "Member"
|
||||
field :rank5title, :string, default: "Member"
|
||||
field :capacity, :integer, default: 10
|
||||
field :logo_bg, :integer, source: :logoBG
|
||||
field :logo_bg_color, :integer, default: 0, source: :logoBGColor
|
||||
field :notice, :string
|
||||
field :signature, :integer, default: 0
|
||||
field :alliance, :integer, default: 0
|
||||
|
||||
has_many :guild_skills, Odinsea.Database.Schema.GuildSkill, foreign_key: :guildid
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for creating a guild.
|
||||
"""
|
||||
def creation_changeset(guild, attrs) do
|
||||
guild
|
||||
|> cast(attrs, [:leader, :name, :capacity, :logo, :logo_color, :logo_bg, :logo_bg_color])
|
||||
|> validate_required([:leader, :name])
|
||||
|> validate_length(:name, min: 1, max: 45)
|
||||
|> unique_constraint(:name)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for updating guild settings.
|
||||
"""
|
||||
def settings_changeset(guild, attrs) do
|
||||
guild
|
||||
|> cast(attrs, [
|
||||
:rank1title, :rank2title, :rank3title, :rank4title, :rank5title,
|
||||
:capacity, :notice, :signature, :alliance
|
||||
])
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for updating guild leader.
|
||||
"""
|
||||
def leader_changeset(guild, attrs) do
|
||||
guild
|
||||
|> cast(attrs, [:leader])
|
||||
|> validate_required([:leader])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user