<?php

namespace App\Exports;

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

class IzinTamuExport implements FromCollection, WithHeadings
{
    protected $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function collection()
    {
        return $this->data->map(function($item) {
            return [
                'Perusahaan'       => $item->perusahaan ?? '-',
                'Nama Tamu'        => $item->nama_tamu ?? '-',
                'Jumlah'           => $item->jumlah_tamu ?? 0,
                'Jenis Tamu'       => $item->jenis_tamu ?? '-',
                'Tanggal'          => $item->waktu_mulai ? $item->waktu_mulai->format('d/m/Y') : '-',
                'Jam Mulai'        => $item->waktu_mulai ? $item->waktu_mulai->format('H:i') : '-',
                'Jam Selesai'      => $item->waktu_selesai ? $item->waktu_selesai->format('H:i') : '-',
                'Jam Input'        => $item->jam_input ? $item->jam_input->format('H:i:s') : '-',
                'Agenda'           => $item->agenda_kunjungan ?? '-',
                'Lokasi'           => $item->lokasi_penerimaan ?? '-',
                'Dept. Tujuan'     => $item->yang_ditemui ?? '-',
                'User'             => $item->user_ditemui ?? '-',
                'Jam Masuk'        => $item->jam_masuk ? $item->jam_masuk->format('H:i') : '-',
                'Jam Keluar'       => $item->jam_keluar ? $item->jam_keluar->format('H:i') : '-',
                'Petugas Jaga'    => $item->petugas_jaga ?? '-',
                'Kendaraan'        => trim(($item->jenis_kendaraan ?? '') . ' ' . ($item->no_pol ?? '')) ?: '-',
                'Konsumsi'         => $item->sudah_konsumsi ? '✅' : '❌',
                'APD'              => $item->sudah_apd ? '✅' : '❌',
                'Status'           => $item->status_hadir === 'hadir' ? 'Hadir' : 'Belum Hadir',
            ];
        });
    }

    public function headings(): array
    {
        return [
            'Perusahaan', 'Nama Tamu', 'Jumlah', 'Jenis Tamu', 'Tanggal', 'Jam Mulai',
            'Jam Selesai','Jam Input', 'Agenda', 'Lokasi', 'Dept. Tujuan', 'User', 'Jam Masuk',
            'Jam Keluar', 'Petugas Jaga', 'Kendaraan', 'Konsumsi', 'APD', 'Status'
        ];
    }
}
