module Royalties
  class NewContractMechanicalDeductionPage < RoyaltiesPage
    page_url "/contract/<%=params[:contract_id]%>/mechanical-deduction/new"

    # type elements
    div(:type_section) do
      h3_element(text: "Type").parent
    end
    element(:digital_downloads) do
      type_section_element.input(name: "digital_download")
    end
    element(:physical) do
      type_section_element.input(name: "physical")
    end
    element(:ringtones) do
      type_section_element.input(name: "ringtone")
    end

    # who pays elements
    div(:who_pays_section) do
      h3_element(text: "Who pays the Mechanical Deductions?").parent
    end
    element(:payee_customer) do
      who_pays_section_element.input(value: "payee")
    end
    element(:theorchard) do
      who_pays_section_element.input(value: "orchard")
    end
    element(:both) do
      who_pays_section_element.input(value: "both")
    end

    # Are admin fees taken by The Orchard for publishing elements
    div(:admin_fees_taken_by_orchard_section) do
      h3_element(text: "Are admin fees taken by The Orchard for publishing?").parent
    end
    text_field(:admin_fees_taken_yes) do
      admin_fees_taken_by_orchard_section_element.label_element(text: "Yes").parent.input
    end
    text_field(:admin_fees_taken_no) do
      admin_fees_taken_by_orchard_section_element.label_element(text: "No").parent.input
    end

    def select_deduction_type(deduction_type)
      case deduction_type.downcase
      when "digital_downloads"
        digital_downloads_element.click
      when "ringtones"
        ringtones_element.click
      when "physical"
        physical_element.click
      end
    end

    def select_who_pays(who_pays)
      case who_pays.downcase
      when "payee_customer"
        payee_customer_element.click
      when "theorchard"
        theorchard_element.click
      when "both"
        both_element.click
      end
    end

    def select_admin_fees_taken(fees_taken)
      case fees_taken.downcase
      when "yes"
        admin_fees_taken_yes_element.click
      when "no"
        admin_fees_taken_no_element.click
      end
    end

    button(:save, text: "Save")
  end
end
