require_relative '../../versions' Sequel.migration do change do create_table(:users) do primary_key :id String :email, null: false, unique: true String :name DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end create_table(:identities) do primary_key :id foreign_key :user_id, :users, null: false, on_delete: :cascade String :provider, null: false String :uid, null: false String :token, text: true String :refresh_token, text: true DateTime :expires_at DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP unique [:provider, :uid] end create_enum(:project_type, %w[sbq hunt bingo dtq]) create_table(:pokemon) do primary_key :id String :name, unique: true, null: false, index: true FO::Versions::VERSIONS_BY_GENERATION .values .map { |g| g[:version_groups] } .reduce(&:+) .each { |version| TrueClass ("version_#{version}").to_sym, default: false File ("version_#{version}_sprite").to_sym } DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end create_table(:projects) do primary_key :id foreign_key :user_id, :users, null: false, on_delete: :cascade column :data, :jsonb, null: false column :type, :project_type DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP end end end