# frozen_string_literal: true

module Manager
  class InstructeursController < Manager::ApplicationController
    def reinvite
      instructeur = Instructeur.find(params[:id])
      instructeur.user.invite_instructeur!
      flash[:notice] = "Instructeur réinvité."
      redirect_to manager_instructeur_path(instructeur)
    end

    def delete
      instructeur = Instructeur.find(params[:id])

      if !instructeur.can_be_deleted?
        fail "Impossible de supprimer cet instructeur car il est administrateur ou il est le seul instructeur sur une démarche"
      end
      instructeur.destroy!

      logger.info("L'instructeur #{instructeur.id} est supprimé par #{current_super_admin.id}")
      flash[:notice] = "L'instructeur #{instructeur.id} est supprimé"

      redirect_to manager_instructeurs_path
    end

    def export_last_month
      instructeurs = Instructeur.joins(:user).where(created_at: 6.months.ago..).where.not(users: { email_verified_at: nil })
      csv = CSV.generate(headers: true) do |csv|
        csv << ['ID', 'Email', 'Date de création']
        instructeurs.each do |instructeur|
          csv << [instructeur.id, instructeur.email, instructeur.created_at]
        end
      end

      send_data csv, filename: "instructeurs_#{Date.today.strftime('%d-%m-%Y')}.csv"
    end
  end
end