<?php

namespace App\Models;

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

class Produk extends Model
{
    use HasFactory;

    protected $fillable = [
        'kategori_id', 'nama_produk', 'deskripsi', 'berat', 'satuan', 'foto', 'harga', 'status', 'min_qty_mitra', 'harga_mitra'
    ];

    // Relasi: Satu produk memiliki satu kategori
    public function kategori()
    {
        return $this->belongsTo(KategoriProduk::class, 'kategori_id');
    }

    public function detailPesanan()
    {
        return $this->hasMany(DetailPesanan::class, 'produk_id');
    }

    public function stok()
    {
        return $this->hasOne(StokProduk::class, 'produk_id');
    }

    // Di dalam Model Produk.php
    public function getTerpesanAttribute()
    {
        // Menghitung total qty dari detail pesanan yang statusnya dijadwalkan atau dikirim
        return $this->detailPesanan()
            ->whereHas('pesanan', function($query) {
                $query->whereIn('status', ['dijadwalkan', 'dikirim']);
            })
            ->sum('qty');
    }

    public function getTersediaAttribute()
    {
        // Stok Fisik dikurangi yang sudah Terpesan
        return $this->stok_fisik - $this->terpesan;
    }
}