monkey = require('baobab').monkey
moment = require('moment')

module.exports =
  reportList: []
  displayedIds: []
  expanded: false
  current_page: 1
  max_pages: 6
  num_selected: 0
  start_date: moment().subtract(1, 'months').toDate()
  end_date: moment().toDate()
  displayed: monkey(
    cursors:
      reportList: ['reports', 'reportList']
      displayedIds: ['reports', 'displayedIds']
    get: (state) ->
      displayed = []
      #add a day to end date to be inclusive
      end_date = moment(state.end_date).add(1, 'days')
      for report in state.reportList
        if report.id in state.displayedIds
          displayed.push(report)
      displayed.sort((a, b) ->
        return a.end - b.end
      )
      return displayed
  )
  current_report: monkey(
    cursors:
      reportList: ['reports', 'reportList']
      expanded: ['reports', 'expanded']
    get: (state) ->
      for report in state.reportList
        if report.id == state.expanded
          return report
  )
  export_disabled: monkey(
    cursors:
      reportList: ['reports', 'reportList']
    get: (state) ->
      selected = []
      for report in state.reportList
        if report.selected
          return false
      return true
  )
  selected: monkey(
    cursors:
      reportList: ['reports', 'reportList']
    get: (state) ->
      selected = []
      for report in state.reportList
        if report.selected
          selected.push(report)
      return selected
  )
