<?php

namespace App\Models\Dataset;

use Illuminate\Database\Eloquent\SoftDeletes;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class DatasetTable11 extends Model
{
    use HasFactory;
    use SoftDeletes;

    protected $table = 'dataset_table11';
    protected $primaryKey = 'DatasetTable11Id';

    protected $guarded = [];

    function dataset() {
        return $this->belongsTo('App\Models\Dataset','dataset_id');
    }

    public static function dataChart($modelClass,$datasetId,$templateId){

        $datasets = \App\Models\Dataset::where('template_id', $templateId)
            ->orderBy('tahun', 'asc')
            ->get()
            ->map(function ($dataset) use ($modelClass) {
                $dataset->items = (new $modelClass)->where('dataset_id', $dataset->id)->get();
                return $dataset;
            });
        $years  = $datasets->pluck('tahun')->toArray();
        $model = self::with('dataset')->whereHas('dataset',function($query) use ($years){
            $query->whereIn('tahun',$years);
        })->where('dataset_id',$datasetId)->get();
        
        $result = [];
        foreach ($model as $row) {
            $lokasi = $row->lokasi ?? 'Unknown';

            if (!isset($result[$lokasi])) {
                $result[$lokasi] = [
                    'luas' => [],
                    'persen' => []
                ];
            }

            $result[$lokasi]['luas'][]   = (float) $row->luas;
            $result[$lokasi]['persen'][] = (float) $row->persentase_area_kerusakan;
        }

        return [
            'title'     => 'Luas & Persentase Area Kerusakan per Wilayah',
            'years'     => $years,
            'yTitle'    => 'Luas (Ha)',
            'yOpposite'    => 'Persentase (%)',
            'series'    => collect($result)->flatMap(function ($item, $lokasi) {
                return [
                    [
                        'name' => "Luas - {$lokasi}",
                        'type' => 'column',
                        'data' => $item['luas']
                    ],
                    [
                        'name' => "Persentase - {$lokasi}",
                        'type' => 'line',
                        'data' => $item['persen']
                    ]
                ];
            })->values()
        ];
    }

    public static function legend() {
        $html = "
            Keterangan:<br>
            Berdasarkan Keputusan Menteri Lingkungan Hidup Nomor 200 Tahun 2004 tentang Kriteria Baku Kerusakan dan Pedoman<br>
            Penentuan Status Padang Lamun<br><br>
            
            Sumber: Dinas Ketahanan Pangan, Kelautan dan Pertanian Provinsi DKI Jakarta<br><br>
            
            Penjelasan Isi Tabel:<br>
            (1) Nomor urut diisi dengan angka 1,2,3, dst<br>
            (2) Diisi dengan provinsi/kabupaten/kota yang ada di provinsi penyusun laporan<br>
            (3) Diisi dengan angka luas padang lamun dalam satuan hektar<br>
            (4) Diisi dengan persentase area kerusakan<br>
        ";
        return $html;
    }

}
