Files
odinsea-elixir/lib/odinsea/database/schema/pet.ex
2026-02-14 23:58:01 -07:00

39 lines
904 B
Elixir

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