<?php

namespace App\Exports;

use App\Models\Biene;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;


class bieneExport implements FromCollection, WithHeadings, WithMapping
{
    public function headings(): array
    {
        return [
            'ID',
            'Inventario',
            'Marca',
            'Modelo',
            'Serie',
            'Descripción',
            'Observaciones',
            'Situación',
            'Proveedor',
            'Factura',
            'No. Pedido',
            'Costo',
            'Fecha de Alta',
            'Bien',
            'Conservación',
            'Estatus',
            'Categoría',
            'Centro de Trabajo',
            'Dependencia',
            'Empleado',
            'Puesto',
            'RFC',
            'Fecha creación',
        ];
    }

    public function collection()
    {
        return Biene::with(['categoria', 'centro_trabajo', 
        // 'dependencia', 
        'empleado'])->get();
    }

    public function map($biene): array
    {
        return [
            $biene->id,
            $biene->inventario,
            $biene->marca,
            $biene->modelo,
            $biene->serie,
            $biene->descripcion,
            $biene->observaciones,
            $biene->situacion->situacion,
            $biene->facturas->proveedor->nombre,
            $biene->facturas->factura,
            $biene->facturas->noPedido,
            $biene->costo,
            $biene->fechaAlta,
            $biene->bien,
            $biene->conservacion->conservacion,
            $biene->estatus->estatus,
            $biene->centro_trabajo->nombre, // Acceder al nombre del centro de trabajo
            $biene->centro_trabajo->dependencia->nombre, // Acceder al nombre de la dependencia
            $biene->empleado ? $biene->empleado->nombre . ' ' . $biene->empleado->apellidoPaterno. ' ' . $biene->empleado->apellidoMaterno : '', // Acceder al nombre y apellido del empleado (si existe)
            $biene->empleado ? $biene->empleado->puesto : '',
            $biene->empleado ? $biene->empleado->rfc : '',
            $biene->created_at,
        ];
    }
    
}