From 0b3b777021392ed540c850788b4ef771b003c932 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Thu, 4 May 2023 12:54:10 -0700 Subject: [PATCH] Add tables for Siero --- db/migrate/20230423070004_add_gacha_table.rb | 13 ++++++ .../20230423071446_add_recruits_to_weapon.rb | 5 +++ ...125524_change_gacha_drawable_id_to_uuid.rb | 7 ++++ ...423132430_make_gacha_drawable_id_unique.rb | 5 +++ .../20230502012823_add_gacha_rateups_table.rb | 8 ++++ db/migrate/20230503221903_add_sparks_table.rb | 11 +++++ ...0230503224345_add_target_memo_to_sparks.rb | 5 +++ ...503224353_make_user_id_unique_in_sparks.rb | 5 +++ db/schema.rb | 41 ++++++++++++++++++- 9 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20230423070004_add_gacha_table.rb create mode 100644 db/migrate/20230423071446_add_recruits_to_weapon.rb create mode 100644 db/migrate/20230423125524_change_gacha_drawable_id_to_uuid.rb create mode 100644 db/migrate/20230423132430_make_gacha_drawable_id_unique.rb create mode 100644 db/migrate/20230502012823_add_gacha_rateups_table.rb create mode 100644 db/migrate/20230503221903_add_sparks_table.rb create mode 100644 db/migrate/20230503224345_add_target_memo_to_sparks.rb create mode 100644 db/migrate/20230503224353_make_user_id_unique_in_sparks.rb diff --git a/db/migrate/20230423070004_add_gacha_table.rb b/db/migrate/20230423070004_add_gacha_table.rb new file mode 100644 index 0000000..264051a --- /dev/null +++ b/db/migrate/20230423070004_add_gacha_table.rb @@ -0,0 +1,13 @@ +class AddGachaTable < ActiveRecord::Migration[7.0] + create_table :gacha, id: :uuid, default: -> { "gen_random_uuid()" } do |t| + t.references :drawable, polymorphic: true + t.boolean :premium + t.boolean :classic + t.boolean :flash + t.boolean :legend + t.boolean :valentines + t.boolean :summer + t.boolean :halloween + t.boolean :holiday + end +end diff --git a/db/migrate/20230423071446_add_recruits_to_weapon.rb b/db/migrate/20230423071446_add_recruits_to_weapon.rb new file mode 100644 index 0000000..21dbf1e --- /dev/null +++ b/db/migrate/20230423071446_add_recruits_to_weapon.rb @@ -0,0 +1,5 @@ +class AddRecruitsToWeapon < ActiveRecord::Migration[7.0] + def change + add_reference :weapons, :recruits, null: true, to_table: 'character_id', type: :uuid + end +end diff --git a/db/migrate/20230423125524_change_gacha_drawable_id_to_uuid.rb b/db/migrate/20230423125524_change_gacha_drawable_id_to_uuid.rb new file mode 100644 index 0000000..e274ffe --- /dev/null +++ b/db/migrate/20230423125524_change_gacha_drawable_id_to_uuid.rb @@ -0,0 +1,7 @@ +class ChangeGachaDrawableIdToUuid < ActiveRecord::Migration[7.0] + def change + remove_column :gacha, :drawable_id, :bigint + remove_column :gacha, :drawable_type, :string + add_reference :gacha, :drawable, polymorphic: true, type: :uuid + end +end diff --git a/db/migrate/20230423132430_make_gacha_drawable_id_unique.rb b/db/migrate/20230423132430_make_gacha_drawable_id_unique.rb new file mode 100644 index 0000000..3181999 --- /dev/null +++ b/db/migrate/20230423132430_make_gacha_drawable_id_unique.rb @@ -0,0 +1,5 @@ +class MakeGachaDrawableIdUnique < ActiveRecord::Migration[7.0] + def change + add_index :gacha, :drawable_id, unique: true + end +end diff --git a/db/migrate/20230502012823_add_gacha_rateups_table.rb b/db/migrate/20230502012823_add_gacha_rateups_table.rb new file mode 100644 index 0000000..da7c72f --- /dev/null +++ b/db/migrate/20230502012823_add_gacha_rateups_table.rb @@ -0,0 +1,8 @@ +class AddGachaRateupsTable < ActiveRecord::Migration[7.0] + create_table :gacha_rateups, id: :uuid, default: -> { "gen_random_uuid()" } do |t| + t.references :gacha, type: :uuid + t.string :user_id + t.numeric :rate + t.datetime :created_at, null: false, default: -> { 'CURRENT_TIMESTAMP' } + end +end diff --git a/db/migrate/20230503221903_add_sparks_table.rb b/db/migrate/20230503221903_add_sparks_table.rb new file mode 100644 index 0000000..fca83e0 --- /dev/null +++ b/db/migrate/20230503221903_add_sparks_table.rb @@ -0,0 +1,11 @@ +class AddSparksTable < ActiveRecord::Migration[7.0] + create_table :sparks, id: :uuid, default: -> { "gen_random_uuid()" } do |t| + t.string :user_id, null: false + t.string :guild_ids, array: true, null: false + t.integer :crystals, default: 0 + t.integer :tickets, default: 0 + t.integer :ten_tickets, default: 0 + t.references :target, polymorphic: true + t.datetime :updated_at, null: false, default: -> { 'CURRENT_TIMESTAMP' } + end +end diff --git a/db/migrate/20230503224345_add_target_memo_to_sparks.rb b/db/migrate/20230503224345_add_target_memo_to_sparks.rb new file mode 100644 index 0000000..c31caea --- /dev/null +++ b/db/migrate/20230503224345_add_target_memo_to_sparks.rb @@ -0,0 +1,5 @@ +class AddTargetMemoToSparks < ActiveRecord::Migration[7.0] + def change + add_column :sparks, :target_memo, :string + end +end diff --git a/db/migrate/20230503224353_make_user_id_unique_in_sparks.rb b/db/migrate/20230503224353_make_user_id_unique_in_sparks.rb new file mode 100644 index 0000000..16ffff6 --- /dev/null +++ b/db/migrate/20230503224353_make_user_id_unique_in_sparks.rb @@ -0,0 +1,5 @@ +class MakeUserIdUniqueInSparks < ActiveRecord::Migration[7.0] + def change + add_index :sparks, :user_id, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index f7496af..ad74e64 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_04_19_102354) do +ActiveRecord::Schema[7.0].define(version: 2023_05_03_224353) do # These are extensions that must be enabled in order to support this database enable_extension "btree_gin" enable_extension "pg_trgm" @@ -124,6 +124,29 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_19_102354) do t.index ["user_id"], name: "index_favorites_on_user_id" end + create_table "gacha", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.boolean "premium" + t.boolean "classic" + t.boolean "flash" + t.boolean "legend" + t.boolean "valentines" + t.boolean "summer" + t.boolean "halloween" + t.boolean "holiday" + t.string "drawable_type" + t.uuid "drawable_id" + t.index ["drawable_id"], name: "index_gacha_on_drawable_id", unique: true + t.index ["drawable_type", "drawable_id"], name: "index_gacha_on_drawable" + end + + create_table "gacha_rateups", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.uuid "gacha_id" + t.string "user_id" + t.decimal "rate" + t.datetime "created_at", default: -> { "CURRENT_TIMESTAMP" }, null: false + t.index ["gacha_id"], name: "index_gacha_rateups_on_gacha_id" + end + create_table "grid_characters", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "party_id" t.uuid "character_id" @@ -331,6 +354,20 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_19_102354) do t.string "slug" end + create_table "sparks", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.string "user_id", null: false + t.string "guild_ids", null: false, array: true + t.integer "crystals", default: 0 + t.integer "tickets", default: 0 + t.integer "ten_tickets", default: 0 + t.string "target_type" + t.bigint "target_id" + t.datetime "updated_at", default: -> { "CURRENT_TIMESTAMP" }, null: false + t.string "target_memo" + t.index ["target_type", "target_id"], name: "index_sparks_on_target" + t.index ["user_id"], name: "index_sparks_on_user_id", unique: true + end + create_table "summons", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.string "name_en" t.string "name_jp" @@ -413,7 +450,9 @@ ActiveRecord::Schema[7.0].define(version: 2023_04_19_102354) do t.integer "awakening_types", default: [], array: true t.string "nicknames_en", default: [], null: false, array: true t.string "nicknames_jp", default: [], null: false, array: true + t.uuid "recruits_id" t.index ["name_en"], name: "index_weapons_on_name_en", opclass: :gin_trgm_ops, using: :gin + t.index ["recruits_id"], name: "index_weapons_on_recruits_id" end add_foreign_key "favorites", "parties"