50 lines
1.7 KiB
Elixir
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
|