module Workstation
  class AccountingPhysicalReservesPage < Workstation::BasePage
    RESERVE_PAYOUTS_COLUMNS = %i[
      reserve_taken
      expected_release
      currency
      amount
    ].freeze

    page_url "/accounting/physicalreserves"

    table(:reserve_payouts_table, class: ["ClickableTable", "table", "table-striped"])

    def reserve_payouts_data
      reserve_payouts_table_element.when_present

      reserve_payouts_table_element.element.rows.map do |row|
        row_values = row.tds.map(&:text)
        Hash[RESERVE_PAYOUTS_COLUMNS.zip(row_values)] unless row_values.compact.empty?
      end.compact
    end
  end
end
