<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Achat;
use App\Models\Fournisseur;
use App\Models\Produit;
use Illuminate\Http\Request;

class AchatController extends Controller
{
    /**
     * Liste des achats de produit.
     */
    public function index()
    {
        $achats = Achat::with(['fournisseur', 'produit'])
            ->latest('date_achat')
            ->paginate(10)
            ->withQueryString();

        $fournisseurs = Fournisseur::whereNull('deleted_at')->orderBy('nom', 'desc')->get();
        $produits = Produit::whereNull('deleted_at')->orderBy('designation', 'desc')->get();

        return view('achats.index', compact('achats', 'fournisseurs', 'produits'));
    }


    /**
     * Ajouter un achat de produit.
     */
    public function store(Request $request)
    {
        $validated = $request->validate([
            'fournisseur_id' => 'required|exists:fournisseurs,id',
            'produit_id' => 'required|exists:produits,id',
            'quantite' => 'required|integer|min:1',
            'montant' => 'required|numeric|min:0',
            'statut_achat' => 'required|in:soldé,impayé',
            'date_achat' => 'required|date',
        ]);

        Achat::create($validated);

        return redirect()->route('achats.index')->with('success', 'Achat créé avec succès');
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }
}
