<?php

namespace App\Http\Controllers;

use App\Enums\StatutAnnonce;
use App\Models\Annonce;
use App\Models\Banniere;

class AccueilController extends Controller
{
    public function index()
    {
        // Bannières actives, dans leur période, pour le carrousel d'accueil
        $bannieres = Banniere::query()
            ->where('actif', true)
            ->where('emplacement', 'accueil_carrousel')
            ->where(fn ($q) => $q->whereNull('date_debut')->orWhere('date_debut', '<=', now()))
            ->where(fn ($q) => $q->whereNull('date_fin')->orWhere('date_fin', '>=', now()))
            ->latest()
            ->take(5)
            ->get();

        // En vedette : annonces publiées les plus populaires (vues + likes)
        $vedettes = Annonce::query()
            ->where('statut', StatutAnnonce::Publiee)
            ->with('images')
            ->orderByRaw('(vues + likes) DESC')
            ->take(10)
            ->get();

        // Annonces récentes publiées
        $annonces = Annonce::query()
            ->where('statut', StatutAnnonce::Publiee)
            ->with(['images', 'marketplaceDetail', 'evenementDetail'])
            ->latest('publiee_le')
            ->take(12)
            ->get();

        return view('public.accueil', compact('bannieres', 'vedettes', 'annonces'));
    }
}