class CreateNewsletters < ActiveRecord::Migration[7.0]
  def change
    create_table :newsletters do |t|
      t.string :title, null: false
      t.text :context
      # t.references :user, null: false, foreign_key: true
      t.references :user, null: false, foreign_key: {to_table: User.table_name}
      t.boolean :is_draft, default: false
      t.datetime :published_at
      t.datetime :deleted_at

      t.timestamps
    end

    create_table :newsletter_delivers do |t|
      t.references :subscription, null: false, foreign_key: true
      t.references :newsletter, null: false, foreign_key: true
      t.integer :state, default: 0
      t.datetime :published_at
      t.datetime :received_at
      t.timestamps
    end
    add_index :newsletter_delivers, [:subscription_id, :newsletter_id], unique: true
  end
end
