<?php

namespace App\Exports;

use App\Models\Inspecteur;
use Illuminate\Support\Facades\Log;

class InspecteurExport extends BaseExport
{
    protected function getExportColumns(): array
    {
        return [
            ['name' => 'id', 'label' => 'ID', 'type' => 'numeric'],
            ['name' => 'nomfr', 'label' => 'Nom (Français)', 'type' => 'text'],
            ['name' => 'nomar', 'label' => 'Nom (Arabe)', 'type' => 'text'],
            ['name' => 'matricule', 'label' => 'Matricule', 'type' => 'text'],
            ['name' => 'nni', 'label' => 'NNI', 'type' => 'text'],
            ['name' => 'date_naissance', 'label' => 'Date de naissance', 'type' => 'date'],
            ['name' => 'lieu_naissance_ar', 'label' => 'Lieu de naissance (Arabe)', 'type' => 'text'],
            ['name' => 'lieu_naissance_fr', 'label' => 'Lieu de naissance (Français)', 'type' => 'text'],
            ['name' => 'date_affectation', 'label' => 'Date d\'affectation', 'type' => 'date'],
            ['name' => 'contact', 'label' => 'Contact', 'type' => 'text'],
            ['name' => 'date_mise_en_corps_IES', 'label' => 'Date mise en corps IES', 'type' => 'date'],
            ['name' => 'bank', 'label' => 'Banque', 'type' => 'text'],
            ['name' => 'compte', 'label' => 'Compte', 'type' => 'text'],
            ['name' => 'email', 'label' => 'Email', 'type' => 'email'],
            ['name' => 'matrimonialite', 'label' => 'Matrimonialité', 'type' => 'text'],
            ['name' => 'date_recri_fp', 'label' => 'Date recrutement FP', 'type' => 'date'],
            ['name' => 'photo', 'label' => 'Photo', 'type' => 'text'],
            ['name' => 'pole.libelle', 'label' => 'Pôle', 'type' => 'relationship', 'relation_field' => 'libelle'],
            ['name' => 'discipline.libelle', 'label' => 'Discipline', 'type' => 'relationship', 'relation_field' => 'libelle'],
            ['name' => 'created_at', 'label' => 'Date de création', 'type' => 'datetime'],
            ['name' => 'updated_at', 'label' => 'Date de mise à jour', 'type' => 'datetime'],
        ];
    }

    protected function getExportTitle(): string
    {
        return 'Inspecteurs';
    }

    protected function getModelClass()
    {
        return Inspecteur::class;
    }

    protected function getRelations(): array
    {
        return ['pole', 'discipline'];
    }
}
