port over some more
This commit is contained in:
38
lib/odinsea/database/schema/pet.ex
Normal file
38
lib/odinsea/database/schema/pet.ex
Normal file
@@ -0,0 +1,38 @@
|
||||
defmodule Odinsea.Database.Schema.Pet do
|
||||
@moduledoc """
|
||||
Ecto schema for the pets table.
|
||||
Represents pet data in the game.
|
||||
"""
|
||||
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
|
||||
@primary_key {:petid, :id, autogenerate: true}
|
||||
|
||||
schema "pets" do
|
||||
field :name, :string
|
||||
field :level, :integer, default: 1
|
||||
field :closeness, :integer, default: 0
|
||||
field :fullness, :integer, default: 0
|
||||
field :seconds, :integer, default: 0
|
||||
field :flags, :integer, default: 0
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for creating a pet.
|
||||
"""
|
||||
def creation_changeset(pet, attrs) do
|
||||
pet
|
||||
|> cast(attrs, [:name, :level, :closeness, :fullness])
|
||||
|> validate_required([:name])
|
||||
|> validate_length(:name, min: 1, max: 13)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Changeset for updating pet stats.
|
||||
"""
|
||||
def stats_changeset(pet, attrs) do
|
||||
pet
|
||||
|> cast(attrs, [:level, :closeness, :fullness, :seconds, :flags])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user