<?php

namespace App\Exports;

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

class RapportExport extends BaseExport
{
    protected function getExportColumns(): array
    {
        return [
            ['name' => 'id', 'label' => 'ID', 'type' => 'numeric'],
            ['name' => 'date_inspection', 'label' => 'Date d\'inspection', 'type' => 'date'],
            ['name' => 'classe_visitee', 'label' => 'Classe visitée', 'type' => 'text'],
            ['name' => 'passation', 'label' => 'Passation', 'type' => 'text'],
            ['name' => 'titre_lecon', 'label' => 'Titre de la leçon', 'type' => 'text'],
            ['name' => 'deroulement', 'label' => 'Déroulement', 'type' => 'text'],
            ['name' => 'appreciation_generale', 'label' => 'Appréciation générale', 'type' => 'text'],
            ['name' => 'numero_ordre', 'label' => 'Numéro d\'ordre', 'type' => 'numeric'],
            ['name' => 'note', 'label' => 'Note', 'type' => 'numeric'],
            ['name' => 'etablissement.libellefr', 'label' => 'Établissement', 'type' => 'relationship', 'relation_field' => 'libellefr'],
            ['name' => 'professeur.nomfr', 'label' => 'Professeur', 'type' => 'relationship', 'relation_field' => 'nomfr'],
            ['name' => 'inspecteur.nomfr', 'label' => 'Inspecteur', 'type' => 'relationship', 'relation_field' => 'nomfr'],
            ['name' => 'nombre_eleve', 'label' => 'Nombre d\'élèves', 'type' => 'numeric'],
            ['name' => 'present', 'label' => 'Présents', 'type' => 'numeric'],
            ['name' => 'horaire', 'label' => 'Horaire', 'type' => 'text'],
            ['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 'Rapports';
    }

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

    protected function getRelations(): array
    {
        return ['etablissement', 'professeur', 'inspecteur'];
    }
}
