<?php

namespace App\Exports;

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

class ProductionPlanExport implements FromArray, WithHeadings, WithMapping
{

    protected array $data;
    protected array $dates;

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

    public function array(): array
    {
        return $this->data;
    }

    public function headings(): array
    {
        $headings = [
            'Plant Name',
            'Line Name',
            'Item Code',
        ];

        // Add dynamic headings for each date: Target / Produced
        foreach ($this->dates as $date) {
            $headings[] = $date . ' - Item Quantity';
            $headings[] = $date . ' - Target Plan';
            $headings[] = $date . ' - Produced Quantity';
        }

        return $headings;
    }

    public function map($row): array
    {
        $mapped = [
            $row['plant_name'] ?? '',
            $row['line_name'] ?? '',
            $row['item_code'] ?? '',
        ];

        foreach ($this->dates as $date) {
            $mapped[] = $row['daily_hourly_quantity'][$date] ?? '-';
            $mapped[] = $row['daily_target_dynamic'][$date] ?? '-';
            $mapped[] = $row['produced_quantity'][$date] ?? '-';
        }
        return $mapped;
    }

}
