class CreateAccountingInvoices < ActiveRecord::Migration[6.0]
  def change
    create_table :accounting_invoices do |t|
      t.references :school, type: :integer, null: false, index: false,
        foreign_key: { to_table: :Schools, primary_key: :SchoolID }
      t.references :family, type: :integer, null: false, index: false,
        foreign_key: { to_table: :Families, primary_key: :FamilyID }

      t.integer :status, null: false, default: 0
      t.integer :tracking_number, null: false
      t.integer :views, null: false, default: 0
      t.date :posted_on, null: false
      t.date :due_date, null: false
      t.boolean :paid, null: false, default: false

      t.timestamps

      t.index [:school_id, :family_id, :status, :paid, :due_date],
        name: :invoice_family_scoped_index
      t.index [:school_id, :status, :due_date], name: :invoice_school_scoped_index
      t.index [:school_id, :tracking_number], unique: true
    end
  end
end
