defmodule Odinsea.Repo.Migrations.CreateLoggingTables do use Ecto.Migration def up do # ============================================================================ # CHEAT & SECURITY LOGS # ============================================================================ create table(:cheatlog) do add :characterid, :integer, null: false, default: 0 add :offense, :string, size: 255, null: false add :count, :integer, null: false, default: 0 add :lastoffensetime, :naive_datetime, null: false, default: fragment("CURRENT_TIMESTAMP") add :param, :string, size: 255, null: false end create index(:cheatlog, [:characterid], name: :cid) # ============================================================================ # GM LOGS # ============================================================================ create table(:gmlog) do add :cid, :integer, null: false, default: 0 add :command, :text, null: false add :mapid, :integer, null: false, default: 0 timestamps(type: :naive_datetime, inserted_at: :time, updated_at: false) end create table(:internlog) do add :cid, :integer, null: false, default: 0 add :command, :string, size: 255, null: false add :mapid, :integer, null: false, default: 0 timestamps(type: :naive_datetime, inserted_at: :time, updated_at: false) end # ============================================================================ # DONOR LOGS # ============================================================================ create table(:donorlog) do add :accname, :string, size: 25, null: false, default: "" add :accid, :integer, null: false, default: 0 add :chrname, :string, size: 25, null: false, default: "" add :chrid, :integer, null: false, default: 0 add :log, :string, size: 4096, null: false, default: "" add :time, :string, size: 25, null: false, default: "" add :previouspoints, :integer, null: false, default: 0 add :currentpoints, :integer, null: false, default: 0 end create table(:donation) do add :date, :naive_datetime, null: false, default: fragment("CURRENT_TIMESTAMP") add :ip, :string, size: 15, null: false add :username, :string, size: 13, null: false add :quantity, :integer add :status, :boolean, null: false, default: false end # ============================================================================ # OTHER LOGS # ============================================================================ create table(:scroll_log) do add :accid, :integer, null: false, default: 0 add :chrid, :integer, null: false, default: 0 add :scrollid, :integer, null: false, default: 0 add :itemid, :integer, null: false, default: 0 add :oldslots, :integer, null: false, default: 0 add :newslots, :integer, null: false, default: 0 add :hammer, :integer, null: false, default: 0 add :result, :string, size: 13, null: false, default: "" add :whitescroll, :boolean, null: false, default: false add :legendaryspirit, :boolean, null: false, default: false add :vegaid, :integer, null: false, default: 0 end create table(:ipvotelog) do add :accid, :integer, null: false, default: 0 add :ipaddress, :string, size: 30, null: false, default: "127.0.0.1" add :votetime, :bigint, null: false, default: 0 add :votetype, :integer, null: false, default: 0 end # ============================================================================ # COMPENSATION & CODES # ============================================================================ create table(:compensationlog_confirmed) do add :chrname, :string, size: 25, null: false, default: "", primary_key: true add :donor, :boolean, null: false, default: false add :value, :integer, null: false, default: 0 add :taken, :boolean, null: false, default: false end create table(:pwreset) do add :name, :string, size: 14, null: false add :email, :string, size: 100, null: false add :confirmkey, :string, size: 100, null: false add :status, :boolean, null: false, default: false add :timestamp, :string, size: 100, null: false end end def down do drop table(:pwreset) drop table(:compensationlog_confirmed) drop table(:ipvotelog) drop table(:scroll_log) drop table(:donation) drop table(:donorlog) drop table(:internlog) drop table(:gmlog) drop table(:cheatlog) end end