# frozen_string_literal: true

namespace :mr_common do

desc "dump reminders"
task dump_reminders: :environment do
  reminders = MrCommon::Reminder.all.map do |r|
    r.attributes
  end

  unless reminders.any?
    puts "No reminders to save yet..."
    exit
  end

  yml = reminders.to_yaml
  file = File.open("mr_common_reminders.yml", "w")
  file.write(yml)
  file.close
end

desc "load reminders"
task load_reminders: :environment do
  unless Dir["mr_common_reminders.yml"].any?
    puts "No reminders to load yet..."
    exit
  end
  reminders = YAML.load(File.read("mr_common_reminders.yml"))

  if reminders.any?
    reminder_fields = %i[
      all_day
      description
      end_time
      location
      start_time
      summary
      time_zone
      include_in_confirmation_mailer
    ]

    reminders.each do |reminder|
      r = MrCommon::Reminder.find_or_initialize_by(slug: reminder["slug"])
      attrs = {}
      reminder_fields.each { |attr| attrs[attr.to_s] = reminder[attr.to_s] }
      r.update(attrs)
    end
  end
end

end