class CreateComeeCoreMasterPrices < ActiveRecord::Migration[7.0]
  def change
    create_table :comee_core_master_prices do |t|
      t.float :purchase_price, null: false
      t.float :selling_price, null: false
      t.date :valid_from, null: false
      t.date :valid_to, null: false
      t.integer :status, null: false, default: 0
      t.integer :price_status, null: false, default: 0
      t.boolean :primary, null: false, default: false
      t.float :margin, null: false, default: 0
      t.integer :lead_time
      t.string :state_of_origin
      t.references :country_of_origin,
                   null: true,
                   index: {name: "coo_on_ccmp_indx"},
                   foreign_key: {to_table: :comee_core_lookups}
      t.references :product,
                   null: false,
                   index: {name: "product_on_ccmp_indx"},
                   foreign_key: {to_table: :comee_core_products}
      t.references :supplier,
                   null: false,
                   index: {name: "supplier_on_ccmp_indx"},
                   foreign_key: {to_table: :comee_core_suppliers}
      t.references :unit,
                   null: false,
                   index: {name: "unit_on_ccmp_indx"},
                   foreign_key: {to_table: :comee_core_units}
      t.references :previous_price,
                   null: true,
                   index: {name: "previous_price_on_ccsp_indx"},
                   foreign_key: {to_table: :comee_core_master_prices}
      t.references :next_price,
                   null: true,
                   index: {name: "next_price_on_ccsp_indx"},
                   foreign_key: {to_table: :comee_core_master_prices}
      t.references :product_lookup,
                   null: true,
                   index: {name: "pl_on_ccmp_indx"},
                   foreign_key: {to_table: :comee_core_product_lookups}
      t.boolean :propagated_to_client, null: false, default: false

      t.timestamps
    end

    add_index :comee_core_master_prices,
              %i[product_id supplier_id previous_price_id next_price_id status],
              unique: true,
              name: "pi_si_ppi_on_ccmp_indx"
  end
end