Files
odinsea-elixir/lib/odinsea/database/schema/wz_item_data.ex
2026-02-14 23:58:01 -07:00

50 lines
1.7 KiB
Elixir

defmodule Odinsea.Database.Schema.WzItemData do
@moduledoc """
Ecto schema for the wz_itemdata table.
Represents static item data from WZ files.
"""
use Ecto.Schema
import Ecto.Changeset
@primary_key {:itemid, :integer, autogenerate: false}
schema "wz_itemdata" do
field :name, :string
field :msg, :string
field :desc, :string
field :slot_max, :integer, default: 1, source: :slotMax
field :price, :string, default: "-1.0"
field :whole_price, :integer, default: -1, source: :wholePrice
field :state_change, :integer, default: 0, source: :stateChange
field :flags, :integer, default: 0
field :karma, :integer, default: 0
field :meso, :integer, default: 0
field :monster_book, :integer, default: 0, source: :monsterBook
field :item_make_level, :integer, default: 0, source: :itemMakeLevel
field :quest_id, :integer, default: 0, source: :questId
field :scroll_reqs, :string, source: :scrollReqs
field :consume_item, :string, source: :consumeItem
field :totalprob, :integer, default: 0
field :inc_skill, :string, default: "", source: :incSkill
field :replaceid, :integer, default: 0
field :replacemsg, :string, default: ""
field :create, :integer, default: 0
field :after_image, :string, default: "", source: :afterImage
end
@doc """
Changeset for WZ item data.
"""
def changeset(wz_item_data, attrs) do
wz_item_data
|> cast(attrs, [
:itemid, :name, :msg, :desc, :slot_max, :price, :whole_price,
:state_change, :flags, :karma, :meso, :monster_book, :item_make_level,
:quest_id, :scroll_reqs, :consume_item, :totalprob, :inc_skill,
:replaceid, :replacemsg, :create, :after_image
])
|> validate_required([:itemid])
end
end