# frozen_string_literal: true
class CreateDefaultsTable < ActiveRecord::Migration[6.1]
def change
create_table :community_defaults, if_not_exists: true do |t|
t.belongs_to :community, foreign_key: {on_delete: :cascade}
t.references :server, index: true, foreign_key: {on_delete: :cascade}
t.string :channel_id
t.timestamps
t.index [:community_id, :channel_id]
end
create_table :user_defaults, if_not_exists: true do |t|
t.belongs_to :user, index: true, foreign_key: {on_delete: :cascade}
t.references :community, index: true, foreign_key: {on_delete: :cascade}
t.references :server, index: true, foreign_key: {on_delete: :cascade}
t.timestamps
end
create_table :user_aliases, if_not_exists: true do |t|
t.uuid :uuid, index: true, unique: true
t.belongs_to :user, foreign_key: {on_delete: :cascade}
t.references :community, index: true, foreign_key: {on_delete: :cascade}
t.references :server, index: true, foreign_key: {on_delete: :cascade}
t.string :value, null: false
t.timestamps
t.index [:user_id, :community_id, :value], unique: true
t.index [:user_id, :server_id, :value], unique: true
end
end
end