<?php

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;

class ProduitsExport implements FromCollection, WithHeadings
{
    /**
     * @param \Illuminate\Support\Collection $produits
     */
    public function __construct(
        protected \Illuminate\Support\Collection $produits
    ) {
    }

    /**
     * @return \Illuminate\Support\Collection
     */
    public function collection()
    {
        return $this->produits->map(function ($p) {
            $stock = $p->stock->first();

            return [
                $p->reference,
                $p->designation,
                $p->fournisseur?->nom ?? '-',
                number_format($p->prix, 0, ',', ' '),
                number_format($p->prix_vente ?? 0, 0, ',', ' '),
                $p->unite ?? '-',
                $stock ? $stock->quantite ?? 0 : '-',
                $stock ? $stock->seuil_alerte ?? 0 : '-',
            ];
        });
    }

    /**
     * @return array
     */
    public function headings(): array
    {
        return [
            'Référence',
            'Désignation',
            'Fournisseur',
            'Prix achat (FCFA)',
            'Prix vente (FCFA)',
            'Unité',
            'Quantité',
            'Seuil alerte',
        ];
    }
}
