module Workstation
  class CreateAudioModal < BasePage
    include CreateRelease

    select_list(:meta_language, id: "meta_language")
    text_field(:release_name, id: "releaseName")
    text_field(:primary_artist, id: "primary_token_box")
    text_field(:featuring, id: "featuring_token_box")
    text_field(:remixer, id: "remixer_token_box")
    text_field(:release_date, id: "releaseDate")
    text_field(:sales_date, id: "salesDate")
    select_list(:format, id: "format")
    select_list(:imprint, id: "imprintName")
    select_list(:genre, id: "genre")
    select_list(:subgenre, id: "subgenre")
    text_field(:c_line, id: "c_line")
    text_field(:new_imprint_name, id: "newImprint")

    button(:add_new_brand, id: "newArtist")
    button(:new_imprint_button, id: "newImprintButton")
    button(:add_new_imprint, text: "Add") # TODO: use better ID
    div(:release_name_container, id: "createReleaseReleaseName_li")
    div(:primary_artist_container, id: "createReleasePrimaryArtist_li")
    div(:featuring_container, id: "createReleaseFeaturing_li")
    div(:remixer_container, id: "createReleaseRemixer_li")

    # localization link & field for the release
    link(:release_name_add_localization) { release_name_container_element.link_element }
    select_list(:release_name_localization_language, name: "releaseName[0][languageId]")
    text_field(:localize_release_name, id: /locale-releaseName/)

    link(:primary_artist_add_localization) { primary_artist_container_element.link_element }
    select_list(:primary_artist_name_localization_language, name: "primaryArtist[1][languageId]")
    text_field(:localize_primary_artist_name, id: "locale-primaryArtist-1_token_box")

    link(:featuring_add_localization) { featuring_container_element.link_element }
    select_list(:featuring_name_localization_language, name: "featuring[2][languageId]")
    text_field(:localize_featuring_name, id: "locale-featuring-2_token_box")

    link(:remixer_name_add_localization) { remixer_container_element.link_element }
    select_list(:remixer_name_localization_language, name: "remixer[3][languageId]")
    text_field(:localize_remixer_name, id: "locale-remixer-3_token_box")

    def populate_audio_basics(data)
      self.meta_language = data[:meta_language]
      self.release_name = data[:release_name]
      populate_multiple_artist_element(primary_artist_element, data[:primary_artist])
      populate_multiple_artist_element(featuring_element, data[:featuring])
      populate_multiple_artist_element(remixer_element, data[:remixer])
      self.release_date = data[:release_date].to_s
      self.sales_date = data[:sales_date].to_s
      self.format = data[:format]
      populate_genre(data[:genre], data[:subgenre])
      self.c_line = data[:c_line]
    end

    def create_imprint(name)
      new_imprint_button
      self.new_imprint_name = name
      add_new_imprint_element.click
      wait_until { imprint == name }
    end
  end
end
