namespace :video do
  desc "get video play data"
  task :data => :environment do
    start_times = ['2019-08-19 00:00:00', '2019-11-10 00:00:00']
    end_times = ['2019-11-09 23:59:59', '2020-02-06 00:00:00']

    Video.all.each do |video|
      vv = 0
      play_duration = 0

      start_times.each_with_index do |time, index|
        start_time = time.to_time.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
        end_time = end_times[index].to_time.utc.strftime('%Y-%m-%dT%H:%M:%SZ')

        data = AliyunVod::Service.video_data(video.uuid, start_time, end_time)

        puts data
        if data[:VideoPlayStatisDetails].present?
          sum_duration = data[:VideoPlayStatisDetails][:VideoPlayStatisDetail].map(&:PlayDuration).sum
          sum_vv = data[:VideoPlayStatisDetails][:VideoPlayStatisDetail].map(&:vv).sum

          vv += sum_vv
          play_duration += sum_duration
        end
      end

      video.update!(vv: vv, play_duration: play_duration)
      puts video.id
    end
  end
end