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