Files
odinsea-elixir/priv/repo/migrations/20260215000003_create_cashshop_tables.exs
2026-02-14 23:58:01 -07:00

130 lines
5.4 KiB
Elixir

defmodule Odinsea.Repo.Migrations.CreateCashshopTables do
use Ecto.Migration
def up do
# ============================================================================
# CASH SHOP ITEMS
# ============================================================================
create table(:csitems) do
add :characterid, :integer
add :accountid, :integer
add :packageid, :integer
add :itemid, :integer, null: false, default: 0
add :inventorytype, :integer, null: false, default: 0
add :position, :integer, null: false, default: 0
add :quantity, :integer, null: false, default: 0
add :owner, :string, size: 255
add :gm_log, :string, size: 255
add :uniqueid, :integer, null: false, default: -1
add :flag, :integer, null: false, default: 0
add :expiredate, :bigint, null: false, default: -1
add :type, :integer, null: false, default: 0
add :sender, :string, size: 13, null: false, default: ""
end
create index(:csitems, [:characterid], name: :csitems_characterid_index)
create index(:csitems, [:inventorytype])
create index(:csitems, [:accountid])
create index(:csitems, [:packageid])
create index(:csitems, [:characterid, :inventorytype], name: :csitems_characterid_2_index)
create table(:csequipment) do
add :inventoryitemid, references(:csitems, on_delete: :delete_all), null: false, default: 0
add :upgradeslots, :integer, null: false, default: 0
add :level, :integer, null: false, default: 0
add :str, :integer, null: false, default: 0
add :dex, :integer, null: false, default: 0
add :int, :integer, null: false, default: 0
add :luk, :integer, null: false, default: 0
add :hp, :integer, null: false, default: 0
add :mp, :integer, null: false, default: 0
add :watk, :integer, null: false, default: 0
add :matk, :integer, null: false, default: 0
add :wdef, :integer, null: false, default: 0
add :mdef, :integer, null: false, default: 0
add :acc, :integer, null: false, default: 0
add :avoid, :integer, null: false, default: 0
add :hands, :integer, null: false, default: 0
add :speed, :integer, null: false, default: 0
add :jump, :integer, null: false, default: 0
add :vicioushammer, :integer, null: false, default: 0
add :itemexp, :integer, null: false, default: 0
add :durability, :integer, null: false, default: -1
add :enhance, :integer, null: false, default: 0
add :potential1, :integer, null: false, default: 0
add :potential2, :integer, null: false, default: 0
add :potential3, :integer, null: false, default: 0
add :hpr, :integer, null: false, default: 0
add :mpr, :integer, null: false, default: 0
add :incskill, :integer, null: false, default: -1
add :charmexp, :integer, null: false, default: -1
add :pvpdamage, :integer, null: false, default: 0
end
create index(:csequipment, [:inventoryitemid])
# ============================================================================
# CASH SHOP GIFTS
# ============================================================================
create table(:gifts) do
add :recipient, :integer, null: false, default: 0
add :from, :string, size: 13, null: false, default: ""
add :message, :string, size: 255, null: false, default: ""
add :sn, :integer, null: false, default: 0
add :uniqueid, :integer, null: false, default: 0
end
create index(:gifts, [:recipient])
# ============================================================================
# CASH SHOP CONFIGURATION
# ============================================================================
create table(:cashshop_modified_items) do
add :serial, :integer, null: false, primary_key: true
add :discount_price, :integer, null: false, default: -1
add :mark, :integer, null: false, default: -1
add :showup, :boolean, null: false, default: false
add :itemid, :integer, null: false, default: 0
add :priority, :integer, null: false, default: 0
add :package, :boolean, null: false, default: false
add :period, :integer, null: false, default: 0
add :gender, :integer, null: false, default: 0
add :count, :integer, null: false, default: 0
add :meso, :integer, null: false, default: 0
add :unk_1, :boolean, null: false, default: false
add :unk_2, :boolean, null: false, default: false
add :unk_3, :boolean, null: false, default: false
add :extra_flags, :integer, null: false, default: 0
end
create table(:cashshop_limit_sell) do
add :serial, :integer, null: false, primary_key: true
add :amount, :integer, null: false, default: 0
end
# ============================================================================
# NX CODES
# ============================================================================
create table(:nxcode) do
add :code, :string, size: 15, null: false, primary_key: true
add :valid, :integer, null: false, default: 1
add :user, :string, size: 13
add :type, :integer, null: false, default: 0
add :item, :integer, null: false, default: 10000
end
end
def down do
drop table(:nxcode)
drop table(:cashshop_limit_sell)
drop table(:cashshop_modified_items)
drop table(:gifts)
drop table(:csequipment)
drop table(:csitems)
end
end