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