namespace :classroom do

namespace :students do
  namespace :reports do
    task :registered, [:organization, :course, :from, :to, :format] => [:environment] do |_t, args|
      args.with_defaults(format: 'table')

      from = Date.parse(args[:from])
      to = args[:to].try { |it| Date.parse(it) } || 1.day.since
      format = args[:format]

      stats = Mumuki::Classroom::Student.report(organzation: args[:organization], course: args[:course]).select do |user|
        Date.parse(user[:created_at]) >= from && Date.parse(user[:created_at]) < to
      end
      puts Mumuki::Classroom::Reports::Formats.format_report(format, stats)
    end

    task :active, [:organization, :course, :from, :to, :format] => [:environment] do |_t, args|
      args.with_defaults(format: 'table')

      from = Date.parse(args[:from])
      to = args[:to].try { |it| Date.parse(it) } || 1.day.since
      format = args[:format]

      stats = Mumuki::Classroom::Student.report(organization: args[:organization], course: args[:course]).select do |user|
        (user[:detached_at].blank? || Date.parse(user[:detached_at]) >= from) && Date.parse(user[:created_at]) < to
      end
      puts Mumuki::Classroom::Reports::Formats.format_report(format, stats)
    end
  end
end

end