<?php

namespace App\Exports;

use App\Models\HasilPengujian;
use App\Models\DataUji;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;

class PrediksiExport implements FromCollection, WithHeadings
{
    public function collection()
{
    $dataUji = DataUji::select([
        'kecamatan',
        'data_tahun',
        'phbs',
        'rata_rata_imunisasi',
        'perilaku_merokok',
        'data_kasus',
        'latitude',
        'longitude',
        'status_prediksi',
    ])->get()->map(function ($item) {
        return [
            $item->kecamatan,
            $item->data_tahun,
            $item->phbs,
            $item->rata_rata_imunisasi,
            $item->perilaku_merokok,
            $item->data_kasus,
            $item->latitude,
            $item->longitude,
            $item->data_tahun ? $item->data_tahun + 1 : '-',
            $item->status_prediksi,
        ];
    });

    $hasilPengujian = HasilPengujian::select([
        'kecamatan',
        'data_tahun',
        'phbs',
        'imunisasi',
        'merokok',
        'jumlah_kasus',
        'latitude',
        'longitude',
        'prediksi_tahun',
        'status_prediksi',
    ])->get()->map(function ($item) {
        return [
            $item->kecamatan,
            $item->data_tahun,
            $item->phbs,
            $item->imunisasi,
            $item->merokok,
            $item->jumlah_kasus,
            $item->latitude,
            $item->longitude,
            $item->prediksi_tahun,
            $item->status_prediksi,
        ];
    });

    // Gabung array, lalu jadikan Collection
    return collect($dataUji->toArray())
        ->merge($hasilPengujian->toArray());
}
    public function headings(): array
    {
        return [
            'Kecamatan',
            'Data Tahun',
            'PHBS',
            'Imunisasi',
            'Merokok',
            'Jumlah Kasus',
            'Latitude',
            'Longitude',
            'Prediksi Tahun',
            'Status Prediksi',
        ];
    }
}