42 lines
1.1 KiB
Elixir
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
|