namespace :parameters do
  namespace :init do
    desc "Import parameters from yml to database"
    task :import => :environment do |_|
      FileUtils.mkdir_p(Rails.root.join('public/uploads/application'))
      FileUtils.cp Rails.root.join('app/assets/images/logo-pixtech.jpg'), Rails.root.join('public/uploads/application/logo.jpg') unless File.exists?(Rails.root.join('public/uploads/application/logo.jpg'))
      FileUtils.cp Rails.root.join('app/assets/images/favicon-pixtech.png'), Rails.root.join('public/uploads/application/favicon.png') unless File.exists?(Rails.root.join('public/uploads/application/favicon.png'))
      Locale.create_with(text_en: I18n.t('page_title', locale: :en), text_fr: I18n.t('page_title', locale: :fr)).find_or_create_by(key: 'page_title')
      Locale.create_with(text_en: I18n.t('cookies_use', locale: :en), text_fr: I18n.t('cookies_use', locale: :fr)).find_or_create_by(key: 'cookies_use')
      Locale.create_with(text_en: I18n.t('cookies_use_detail', locale: :en), text_fr: I18n.t('cookies_use_detail', locale: :fr)).find_or_create_by(key: 'cookies_use_detail')
      Locale.create_with(text_en: I18n.t('cookies_policy_body', locale: :en), text_fr: I18n.t('cookies_policy_body', locale: :fr)).find_or_create_by(key: 'cookies_policy_body')
      Locale.create_with(text_en: I18n.t('terms_conditions_body', locale: :en), text_fr: I18n.t('terms_conditions_body', locale: :fr)).find_or_create_by(key: 'terms_conditions_body')
      Locale.create_with(text_en: I18n.t('privacy_policy_body', locale: :en), text_fr: I18n.t('privacy_policy_body', locale: :fr)).find_or_create_by(key: 'privacy_policy_body')
      Locale.create_with(text_en: I18n.t('registration_comment_placeholder', locale: :en), text_fr: I18n.t('registration_comment_placeholder', locale: :en)).find_or_create_by(key: 'registration_comment_placeholder')
      Locale.create_with(text_en: I18n.t('registration_footer', locale: :en), text_fr: I18n.t('registration_footer', locale: :fr)).find_or_create_by(key: 'registration_footer')
      Locale.create_with(text_en: I18n.t('after_registering.header', locale: :en), text_fr: I18n.t('after_registering.header', locale: :fr)).find_or_create_by(key: 'after_registering.header')
      Locale.create_with(text_en: I18n.t('after_registering.body', locale: :en), text_fr: I18n.t('after_registering.body', locale: :fr)).find_or_create_by(key: 'after_registering.body')
      Locale.create_with(text_en: I18n.t('after_requesting_password_reset', locale: :en), text_fr: I18n.t('after_requesting_password_reset', locale: :fr)).find_or_create_by(key: 'after_requesting_password_reset')
      Locale.create_with(text_en: I18n.t('user_mailer.new_registration.subject', locale: :en), text_fr: I18n.t('user_mailer.new_registration.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.new_registration.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.new_registration.body', locale: :en), text_fr: I18n.t('user_mailer.new_registration.body', locale: :fr)).find_or_create_by(key: 'user_mailer.new_registration.body')
      Locale.create_with(text_en: I18n.t('application_mailer.footer', locale: :en), text_fr: I18n.t('application_mailer.footer', locale: :fr)).find_or_create_by(key: 'application_mailer.footer')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_request.subject', locale: :en), text_fr: I18n.t('user_mailer.registration_request.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_request.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_request.body', locale: :en), text_fr: I18n.t('user_mailer.registration_request.body', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_request.body')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_request.link', locale: :en), text_fr: I18n.t('user_mailer.registration_request.link', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_request.link')
      Locale.create_with(text_en: I18n.t('user_mailer.new_user_created.subject', locale: :en), text_fr: I18n.t('user_mailer.new_user_created.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.new_user_created.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.new_user_created.body', locale: :en), text_fr: I18n.t('user_mailer.new_user_created.body', locale: :fr)).find_or_create_by(key: 'user_mailer.new_user_created.body')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_accepted.subject', locale: :en), text_fr: I18n.t('user_mailer.registration_accepted.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_accepted.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_accepted.body', locale: :en), text_fr: I18n.t('user_mailer.registration_accepted.body', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_accepted.body')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_rejected.subject', locale: :en), text_fr: I18n.t('user_mailer.registration_rejected.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_rejected.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.registration_rejected.body', locale: :en), text_fr: I18n.t('user_mailer.registration_rejected.body', locale: :fr)).find_or_create_by(key: 'user_mailer.registration_rejected.body')
      Locale.create_with(text_en: I18n.t('user_mailer.reset_password_instructions.subject', locale: :en), text_fr: I18n.t('user_mailer.reset_password_instructions.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.reset_password_instructions.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.reset_password_instructions.body', locale: :en), text_fr: I18n.t('user_mailer.reset_password_instructions.body', locale: :fr)).find_or_create_by(key: 'user_mailer.reset_password_instructions.body')
      Locale.create_with(text_en: I18n.t('user_mailer.imported.subject', locale: :en), text_fr: I18n.t('user_mailer.imported.subject', locale: :fr)).find_or_create_by(key: 'user_mailer.imported.subject')
      Locale.create_with(text_en: I18n.t('user_mailer.imported.body', locale: :en), text_fr: I18n.t('user_mailer.imported.body', locale: :fr)).find_or_create_by(key: 'user_mailer.imported.body')
      Locale.create_with(text_en: I18n.t('statement_mailer.statement_report.subject', locale: :en), text_fr: I18n.t('statement_mailer.statement_report.subject', locale: :fr)).find_or_create_by(key: 'statement_mailer.statement_report.subject')
      Locale.create_with(text_en: I18n.t('statement_mailer.statement_report.body', locale: :en), text_fr: I18n.t('statement_mailer.statement_report.body', locale: :fr)).find_or_create_by(key: 'statement_mailer.statement_report.body')
      Parameter.create_with(value: Settings.user_mailer.new_registration.from).find_or_create_by(key: 'user_mailer.new_registration.from')
      Parameter.create_with(value: Settings.user_mailer.new_registration.reply_to).find_or_create_by(key: 'user_mailer.new_registration.reply_to')
      Parameter.create_with(value: Settings.user_mailer.new_registration.cc).find_or_create_by(key: 'user_mailer.new_registration.cc')
      Parameter.create_with(value: Settings.user_mailer.new_registration.bcc).find_or_create_by(key: 'user_mailer.new_registration.bcc')
      Parameter.create_with(value: Settings.user_mailer.registration_request.to).find_or_create_by(key: 'user_mailer.registration_request.to')
      Parameter.create_with(value: Settings.user_mailer.registration_request.from).find_or_create_by(key: 'user_mailer.registration_request.from')
      Parameter.create_with(value: Settings.user_mailer.registration_request.reply_to).find_or_create_by(key: 'user_mailer.registration_request.reply_to')
      Parameter.create_with(value: Settings.user_mailer.registration_request.cc).find_or_create_by(key: 'user_mailer.registration_request.cc')
      Parameter.create_with(value: Settings.user_mailer.registration_request.bcc).find_or_create_by(key: 'user_mailer.registration_request.bcc')
      Parameter.create_with(value: Settings.user_mailer.new_user_created.from).find_or_create_by(key: 'user_mailer.new_user_created.from')
      Parameter.create_with(value: Settings.user_mailer.new_user_created.reply_to).find_or_create_by(key: 'user_mailer.new_user_created.reply_to')
      Parameter.create_with(value: Settings.user_mailer.new_user_created.cc).find_or_create_by(key: 'user_mailer.new_user_created.cc')
      Parameter.create_with(value: Settings.user_mailer.new_user_created.bcc).find_or_create_by(key: 'user_mailer.new_user_created.bcc')
      Parameter.create_with(value: Settings.user_mailer.registration_accepted.from).find_or_create_by(key: 'user_mailer.registration_accepted.from')
      Parameter.create_with(value: Settings.user_mailer.registration_accepted.reply_to).find_or_create_by(key: 'user_mailer.registration_accepted.reply_to')
      Parameter.create_with(value: Settings.user_mailer.registration_accepted.cc).find_or_create_by(key: 'user_mailer.registration_accepted.cc')
      Parameter.create_with(value: Settings.user_mailer.registration_accepted.bcc).find_or_create_by(key: 'user_mailer.registration_accepted.bcc')
      Parameter.create_with(value: Settings.user_mailer.registration_accepted.link).find_or_create_by(key: 'user_mailer.registration_accepted.link')
      Parameter.create_with(value: Settings.user_mailer.registration_rejected.from).find_or_create_by(key: 'user_mailer.registration_rejected.from')
      Parameter.create_with(value: Settings.user_mailer.registration_rejected.reply_to).find_or_create_by(key: 'user_mailer.registration_rejected.reply_to')
      Parameter.create_with(value: Settings.user_mailer.registration_rejected.cc).find_or_create_by(key: 'user_mailer.registration_rejected.cc')
      Parameter.create_with(value: Settings.user_mailer.registration_rejected.bcc).find_or_create_by(key: 'user_mailer.registration_rejected.bcc')
      Parameter.create_with(value: Settings.user_mailer.reset_password_instructions.from).find_or_create_by(key: 'user_mailer.reset_password_instructions.from')
      Parameter.create_with(value: Settings.user_mailer.reset_password_instructions.reply_to).find_or_create_by(key: 'user_mailer.reset_password_instructions.reply_to')
      Parameter.create_with(value: Settings.user_mailer.reset_password_instructions.cc).find_or_create_by(key: 'user_mailer.reset_password_instructions.cc')
      Parameter.create_with(value: Settings.user_mailer.reset_password_instructions.bcc).find_or_create_by(key: 'user_mailer.reset_password_instructions.bcc')
      Parameter.create_with(value: Settings.user_mailer.imported.from).find_or_create_by(key: 'user_mailer.imported.from')
      Parameter.create_with(value: Settings.user_mailer.imported.reply_to).find_or_create_by(key: 'user_mailer.imported.reply_to')
      Parameter.create_with(value: Settings.user_mailer.imported.cc).find_or_create_by(key: 'user_mailer.imported.cc')
      Parameter.create_with(value: Settings.user_mailer.imported.bcc).find_or_create_by(key: 'user_mailer.imported.bcc')
      Parameter.create_with(value: Settings.user_mailer.imported_report.from).find_or_create_by(key: 'user_mailer.imported_report.from')
      Parameter.create_with(value: Settings.user_mailer.imported_report.reply_to).find_or_create_by(key: 'user_mailer.imported_report.reply_to')
      Parameter.create_with(value: Settings.user_mailer.imported_report.cc).find_or_create_by(key: 'user_mailer.imported_report.cc')
      Parameter.create_with(value: Settings.user_mailer.imported_report.bcc).find_or_create_by(key: 'user_mailer.imported_report.bcc')
      Parameter.create_with(value: Settings.statement_mailer.statement_report.from).find_or_create_by(key: 'statement_mailer.statement_report.from')
      Parameter.create_with(value: Settings.statement_mailer.statement_report.reply_to).find_or_create_by(key: 'statement_mailer.statement_report.reply_to')
      Parameter.create_with(value: Settings.statement_mailer.statement_report.cc).find_or_create_by(key: 'statement_mailer.statement_report.cc')
      Parameter.create_with(value: Settings.statement_mailer.statement_report.bcc).find_or_create_by(key: 'statement_mailer.statement_report.bcc')
      Parameter.create_with(value: Settings.after_resetting_password_url).find_or_create_by(key: 'after_resetting_password_url')
      Parameter.create_with(value: Settings.sync_data_to_pixadmin).find_or_create_by(key: 'sync_data_to_pixadmin')
      Parameter.create_with(value: Settings.title_provider_group_name_prefix).find_or_create_by(key: 'title_provider_group_name_prefix')
      Parameter.create_with(value: Settings.recaptcha.site_key).find_or_create_by(key: 'recaptcha.site_key')
      Parameter.create_with(value: Settings.recaptcha.secret_key).find_or_create_by(key: 'recaptcha.secret_key')
      Parameter.create_with(value: Settings.automatic_title_creation).find_or_create_by(key: 'automatic_title_creation')
      Parameter.create_with(value: Settings.title_prefix).find_or_create_by(key: 'title_prefix')
      Parameter.create_with(value: Settings.superadmin_only).find_or_create_by(key: 'superadmin_only')
      Parameter.create_with(value: Settings.image_management_url).find_or_create_by(key: 'image_management_url')
      Parameter.create_with(value: Settings.billing).find_or_create_by(key: 'billing')
      Parameter.create_with(value: Settings.menu_background_color).find_or_create_by(key: 'menu_background_color')
      Parameter.create_with(value: Settings.menu_border_color).find_or_create_by(key: 'menu_border_color')
      Parameter.create_with(value: Settings.menu_font_color).find_or_create_by(key: 'menu_font_color')
      Parameter.create_with(value: Settings.active_menu_background_color).find_or_create_by(key: 'active_menu_background_color')
      Parameter.create_with(value: Settings.active_menu_font_color).find_or_create_by(key: 'active_menu_font_color')
      Parameter.create_with(value: Settings.billing_print_template).find_or_create_by(key: 'billing_print_template')
      Parameter.create_with(value: Settings.allow_token_authentication).find_or_create_by(key: 'allow_token_authentication')
      Parameter.create_with(value: Settings.payment_closing).find_or_create_by(key: 'payment_closing')

      Parameter.create_with(value: Settings.hide_registration_form).find_or_create_by(key: 'hide_registration_form')
    end
  end
end
