<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Produk extends Model
{
    protected $table = 'produks';

    protected $fillable = [
        'nama',
        'deskripsi',
        'kategori_id',
        'foto'
    ];

    public function kategori()
    {
        return $this->belongsTo(Kategori::class);
    }

    public function detailPesanans()
    {
        return $this->hasMany(DetailPesanan::class);
    }
    
    public function varians()
    {
        return $this->hasMany(ProdukVarian::class);
    }
    
    // 🔥 TAMBAHKAN: Accessor untuk harga termurah
    public function getHargaAttribute()
    {
        return $this->varians->min('harga') ?? 0;
    }
    
    // 🔥 TAMBAHKAN: Accessor untuk total stok
    public function getStokAttribute()
    {
        return $this->varians->sum('stok');
    }
    
    // 🔥 TAMBAHKAN: Accessor untuk range harga
    public function getHargaRangeAttribute()
    {
        $min = $this->varians->min('harga');
        $max = $this->varians->max('harga');
        
        if (!$min) {
            return 'Rp 0';
        }
        
        if ($min == $max) {
            return 'Rp ' . number_format($min, 0, ',', '.');
        }
        
        return 'Rp ' . number_format($min, 0, ',', '.') . ' - Rp ' . number_format($max, 0, ',', '.');
    }
    
    // 🔥 TAMBAHKAN: Accessor untuk cek stok habis
    public function getStokHabisAttribute()
    {
        return $this->varians->sum('stok') == 0;
    }
    
    // 🔥 TAMBAHKAN: Accessor untuk cek stok terbatas
    public function getStokTerbatasAttribute()
    {
        return $this->varians->sum('stok') <= 5 && $this->varians->sum('stok') > 0;
    }
}