defmodule Odinsea.Database.Schema.Imp do @moduledoc """ Ecto schema for the imps table. Represents Imp (pocket pet) data for characters. """ use Ecto.Schema import Ecto.Changeset @primary_key {:impid, :id, autogenerate: true} schema "imps" do field :characterid, :integer, default: 0 field :itemid, :integer, default: 0 field :level, :integer, default: 1 field :state, :integer, default: 1 field :closeness, :integer, default: 0 field :fullness, :integer, default: 0 belongs_to :character, Odinsea.Database.Schema.Character, foreign_key: :characterid, references: :id, define_field: false end @doc """ Changeset for creating/updating an imp. """ def changeset(imp, attrs) do imp |> cast(attrs, [:characterid, :itemid, :level, :state, :closeness, :fullness]) |> validate_required([:characterid, :itemid]) end end