<?php

namespace App\Controllers;
use App\Models\UsersModel;
use App\Models\EvenementModel;

class EvenementController extends BaseController
{ 
    public function authentification() : String
    {
        return view('Evenement/authentification');
    }
    public function test() : String
    { 
        return view('Evenement/test');
    }

    public function evenement() : String
    {

        $evenementModel = new EvenementModel();
        $data['evenements'] = $evenementModel->findAll();

        return view('Evenement/evenement', $data);
       
    }

    public function totalEvenement(){

     $evenementModel = new EvenementModel();
     $data['evenements'] = $evenementModel->findAll();

        return view('Evenement/totalEvenement',$data);
    }

    public function recherche(){
        $model = new EvenementModel();

        $info = $this->request->getPost('recherche');
        $data['evenements'] = $model->rechercheEvent($info);

        return view('Evenement/totalEvenement',$data);
    }

    public function connection() 
    {
        $email = $this->request->getPost('email');
        $mot_de_passe = $this->request->getPost('mot_de_passe');

        $model = new UsersModel();
        $user = $model->getUserEtEnfantData($email);

        if (!$user) {
            session()->setFlashdata('error', 'Utilisateur non trouvé.');
            return view('Evenement/authentification');
            
        }

        // Vérification d’un mot de passe NON crypté
        if ($mot_de_passe !== $user['mot_de_passe']) {
            session()->setFlashdata('error', 'Mot de passe incorrect.');
            return view('Evenement/authentification');
        }
         // Sauvegarde des infos de l'agent
        session()->set([
           'isLoggedIn' => true,
           'user' => $user,
           'status'       => $user['status'], // IMPORTANT
       ]);
        if ($user['status'] === 'admin') {
            
           return redirect()->to('/admin');       
         }

        
        return redirect()->to(base_url('/authentification'))->with('error', 'Acces non Autoriser.');
    }
    public function admin()
    {
        if (!session()->get('isLoggedIn')) {
        return redirect()->to('/authentification');
       }
        $evenementModel = new EvenementModel();
        $data['evenements'] = $evenementModel->findAll();
        return view('Evenement/admin',$data);
    }

    public function statistique(){
        return view('Evenement/statistique');

    }

     public function AjEvenement()
    {
        $evenementModel = new EvenementModel();

        //  Récupération des données
        $data = [
            'libelle' => $this->request->getPost('nom_evenement'),
            'date_debut'    => $this->request->getPost('date_debut'),
            'date_fin'      => $this->request->getPost('date_fin'),
            'description'   => $this->request->getPost('description'),
        ];

        //  Gestion image
        $image = $this->request->getFile('image');

        if ($image && $image->isValid() && !$image->hasMoved()) {
            $newName = $image->getRandomName();
            $image->move('uploads/evenements', $newName);
            $data['image'] = $newName;
        }

        $evenementModel->insert($data);

        return redirect()->to(base_url('admin'))
                         ->with('success', 'Événement ajouté avec succès');
    }


}