ticket_helper = require('../search_results/ticket_helper.coffee')
ticket_presenter = require('../search_results/ticket_presenter.coffee')
filters = require('../../common/js/filters.coffee')
_ = require('lodash')

module.exports = (model) ->
  format_ticket = ticket_presenter(model)

  visibility: (flag) ->
    {visibility_class: if flag then '' else 'hidden'}

  adapt_proposal: (proposal, index = 0) ->
    gate_info = model.dicts.gates[proposal.gate_id]
    {
      index: index
      url: ticket_helper.create_deeplink(proposal, gate_info, model.dicts.search_id)
      name: gate_info.label
      price: filters.split_price(Math.round(proposal.unified_price / model.dicts.currencies[model.currency]))
      star_class: "stars-#{Math.round(parseFloat(gate_info.average_rate))}"
      currency: model.currency
    }

  adapt_proposals: (display_count = 3) ->
    proposals = []
    for proposal, index in model.proposals.slice(0, display_count)
      proposals.push(@adapt_proposal(model.proposals[index], index))

    proposals

  adapt: ([ticket, proposals], selected_proposal) ->
    view =
      name: if selected_proposal then {value: @adapt_proposal(selected_proposal, -1).name} else null
      ticket: format_ticket([ticket, proposals], 0, model).ticket
      proposals: @adapt_proposals()

    view
