<?php

namespace App\Exports;

use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;

class PayrollExport implements FromCollection,  WithHeadings
{
    use Exportable;

    private $payrolls;

    public function __construct($payrollDetails)
    {
        $this->payrolls = collect($payrollDetails);
    }

    public function headings(): array
    {
        return [
            'Employee ID',
            'Employee Name',
            'Month',
            'Year',
            'Payment Date',
            'Status',
            'Net Salary',
        ];
    }

    public function collection()
    {
        return $this->payrolls->map(function ($payroll) {
            return [
                $payroll['user']['employee_number'] ?? 'N/A',
                $payroll['user']['name'] ?? 'N/A',
                'month' => $payroll->month
                    ? Carbon::create()->month($payroll->month)->format('F')
                    : 'N/A',
                $payroll['year'] ?? 'N/A',
                $payroll['payment_date'] ?? 'N/A',
                $payroll['status'] == 'paid' ? 'Paid' : 'Generated',
                $payroll['net_salary'] ?? 'N/A',
            ];
        });
    }
}
