defmodule Odinsea.Database.Schema.Playernpc do @moduledoc """ Ecto schema for the playernpcs table. Represents player-created NPCs. """ use Ecto.Schema import Ecto.Changeset @primary_key {:id, :id, autogenerate: true} schema "playernpcs" do field :name, :string field :hair, :integer field :face, :integer field :skin, :integer field :x, :integer, default: 0 field :y, :integer, default: 0 field :map, :integer field :charid, :integer field :scriptid, :integer field :foothold, :integer field :dir, :integer, default: 0 field :gender, :integer, default: 0 field :pets, :string, default: "0,0,0" belongs_to :character, Odinsea.Database.Schema.Character, foreign_key: :charid, references: :id, define_field: false end @doc """ Changeset for creating/updating a player NPC. """ def changeset(playernpc, attrs) do playernpc |> cast(attrs, [:name, :hair, :face, :skin, :x, :y, :map, :charid, :scriptid, :foothold, :dir, :gender, :pets]) |> validate_required([:name, :map, :charid, :scriptid]) end end