Files
2026-02-14 23:58:01 -07:00

42 lines
1.1 KiB
Elixir

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