class AddHashStringToInvPaymentAmounts < ActiveRecord::Migration[6.0]
  def change
    add_column :inv_payment_amounts, :hash_string, :text
    add_column :inv_payment_amounts, :previous_hash_string, :text
    add_column :inv_payment_amounts, :created_at, :datetime
    add_column :inv_payment_amounts, :updated_at, :datetime
    PaymentAmount.all.each do |payment_amount|
      time = payment_amount.payment&.created_at || Time.now
      payment_amount.update_columns(created_at: time, updated_at: time)
    end
    change_column_null :inv_payment_amounts, :created_at, false
    change_column_null :inv_payment_amounts, :updated_at, false

    Payment.all.each(&:create_payment_amounts) unless PaymentAmount.exists?
  end
end
