class UserMailerPreview < ActionMailer::Preview

  # Deletion
  def warn_user
    # Test PixTech Saif
    imgs = Image.includes(:provider).where('providers.pp_string_key = "Saifimages"').references(:providers).first(10)
    pixtech = 'saif'

    # Test non PixTech
    # imgs = Image.first(10)
    # pixtech = ''

    util = User.first
    lb = LightBox.first.name
    server_name = Server.find_by(is_self: true).name

    UserMailer.warn_user(imgs, util, lb, server_name, pixtech)
  end

  # Saif pictures sending
  def warn_pixtech
    #imgs = Image.includes(:provider).where('providers.pp_string_key = "Saifimages"').references(:providers).first(10)
    imgs = Image.first(10)
    imgs_rejected = Image.last(5)
    util = User.first
    lb = '' #LightBox.first.name
    server = 'PixPalace'
    server_checked = 'PixPalace 2'
    session_pixtech = 'saif'
    nb_ims = 4063
    UserMailer.warn_pixtech(imgs, imgs_rejected, util, lb, server, server_checked, session_pixtech, nb_ims)
  end

  # PP monthly stats
  def send_yas
    server_name = Server.find_by(is_self: true).name
    total_photos = 0
    prov = {}
    pixtech_list = []
    Provider.where(actif: true).order(:name).each do |p|
      nb_photos = Image.where(provider_id: p.id, content_error: false).count
      unless nb_photos == 0
        if p.is_pixtech_author?
          pixtech_list << p.get_pixtech_name unless pixtech_list.include?(p.get_pixtech_name)
          total_photos_pixtech_authors[p.get_pixtech_name] = (total_photos_pixtech_authors[p.get_pixtech_name] || 0) + nb_photos
        else
          prov[p.pp_name] = [nb_photos,p.string_key]
        end
        total_photos += nb_photos
      end
    end
    pixtech_list.each do |pixtech_name|
      prov["#{pixtech_name.capitalize} auteurs"] = [total_photos_pixtech_authors[pixtech_name],pixtech_name]
    end
    prov = prov.sort_by {|k,v| k}

    UserMailer.send_yas(prov, total_photos, server_name, '')
  end

  # weekly stats
  def send_stats
    users = User.where("title_id not in (select id from titles where name='#{PIXWAYS_TITLE}' or server_id in (select id from servers where name='#{PIXADMIN_SERVER_NAME}')) and roles_mask not in (1,8,16,32,128)").collect{|u| u.id}
    # time_range = Time.now.prev_week.beginning_of_week..Time.now.prev_week.end_of_week
    # week_range = "du #{I18n.l((Date.today.prev_week).beginning_of_week)} au #{I18n.l((Date.today.prev_week).end_of_week)}"
    time_range = Time.now.prev_year.beginning_of_year..Time.now.prev_year.end_of_year
    week_range = "du #{I18n.l((Date.today.prev_year).beginning_of_year)} au #{I18n.l((Date.today.prev_year).end_of_year)}"
    prov_bd = {}
    prov_hd = {}
    prov_dem = {}
    server_name = Server.find_by_is_self(true).name
    prov = Provider.where("string_key not in (?,?) and string_key=pp_string_key","PP"," Pixpalacexmp").order(:name).first
    unless prov.is_pixtech_author?('saif')
      stats = Statistic.joins(:image).where(user_id: users, images: {provider_id: prov.id}, statistics: {created_at: time_range}).order('created_at desc')
      statsbd = Statistic.search_count with: {user_id: users, provider_id: prov.id, created_at: time_range, operation_label_id: 1}
      statshd = Statistic.search_count with: {user_id: users, provider_id: prov.id, created_at: time_range, operation_label_id: 2}
      statsdem = Statistic.search_count with: {user_id: users, provider_id: prov.id, created_at: time_range, operation_label_id: 3}
      prov_hd[prov.name] = statshd
      prov_bd[prov.name] = statsbd
      prov_dem[prov.name] = statsdem
      mel = ProviderContact.where(provider_id: prov.id, receive_stat: true).collect{|pc| pc.email}
    end
    server = server_name == PP2_SERVER_NAME ? "PixPalace 2" : (@is_pixtech ? 'PixTech' : "PixPalace")
    UserMailer.send_stats(stats, mel, prov.name, week_range, statsbd, statshd, statsdem, server, !prov.pixtech.nil?, prov.get_pixtech_name)
  end

  #PixTech Saif - vitrine form
  def showcase_form
    form_params = {
        :form_type        => 'register',
        :formtitle        => I18n.t('register'),
        # :form_type        => 'demand',
        # :formtitle        => I18n.t('form_demand_title'),
        :company          => 'company',
        :address          => 'address',
        :zip_code         => 'zip_code',
        :city_form        => 'city',
        :country_for      => 'country',
        :title_form       => 'title',
        :first_name       => 'first_name',
        :last_name        => 'last_name',
        :job_title        => 'job_title',
        :phone            => 'phone',
        :email            => 'email',
        :billing_email    => 'billing_email',
        :billing_address  => 'billing_address',
        :billing_zip_code => 'billing_zip_code',
        :billing_city     => 'billing_city',
        :billing_country  => 'billing_country',
        :use              => 'use',
        :moreinfo         => 'moreinfo',
        :picname          => 'picname'
    }
    UserMailer.showcase_form(form_params)
  end

  # Demand - user mail
  def dw_user
    filename = 'abc.jpg'
    file_path = '/images/providers/Saifimages.jpg'
    # pixtech_name = 'saif'
    # prov_name = 'Pink'
    # prov_email = 'contact@pink.fr'
    pixtech_name = ''
    prov_name = 'Divergence'
    prov_email = 'divergence@contact.fr'
    util = User.find_by(login: 'ndurant')
    operation = 'HD'
    UserMailer.dw_user(filename, file_path, pixtech_name, prov_name, prov_email, util, operation)
  end

  # Demand - provider mail
  def dw_provider
    filename = 'abc.jpg'
    file_path = '/images/providers/Saifimages.jpg'
    # pixtech_name = 'saif'
    # creator = 'BOUSQUET Gérard'
    # pixtech_ref = '148'
    # prov_name  = 'Saif images'
    # prov_email = 'saif@saif.fr'
    pixtech_name = ''
    creator = ''
    pixtech_ref = ''
    prov_name  = 'Divergence'
    prov_email = 'contact@divergence.fr'
    util = User.find_by(login: 'ndurant')
    operation = 'HD'
    UserMailer.dw_provider(filename, file_path, pixtech_name, creator, pixtech_ref, prov_name, prov_email, util, operation)
  end

  #List to delete - confirmation mail
  def list_transmission
    original_listname = 'original_listname'
    del_options = 'delete_auth_action'
    action_type = 'deletion'
    nb_lines = 123
    user_email='nathalie.durant@pixpalace.com'
    server_name = Server.find_by_is_self(true).name
    UserMailer.list_transmission(original_listname,del_options,action_type,nb_lines,user_email,server_name)
  end

  #PixTech - New author
  def new_author
    params_mail = {}
    params_mail['sk'] = 'sk'
    params_mail['ftp_pwd'] = 'ftp_pwd'
    params_mail['ftp_username'] = 'ftp_username'
    params_mail['fn'] = 'first_name'
    params_mail['ln'] = 'last_name'
    params_mail['email'] = 'email'
    params_mail['login'] = 'login'
    params_mail['mdp'] = 'mdp'
    params_mail['stock'] = 'Voyage Gourmand'
    params_mail['num_adh'] = '666'
    params_mail['multistock'] =  false
    session_pixtech = 'saif'
    UserMailer.new_author(params_mail,session_pixtech)
  end

end