<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class StokAkhir extends Model
{
    protected $table = 'stok_akhir';
    
    // Menentukan primary key kustom (sesuai DB: id_produk varchar(5))
    protected $primaryKey = 'id_produk';

    // Memberitahu Laravel bahwa primary key bukan auto-incrementing
    public $incrementing = false;

    // Memberitahu Laravel bahwa tipe primary key adalah string
    protected $keyType = 'string';

    // Nonaktifkan timestamps default karena menggunakan 'waktu_update' manual/DB trigger
    public $timestamps = false;

    protected $fillable = [
        'id_produk',
        'nama_produk',
        'jenis_barang',
        'stok_isi',
        'stok_kosong',
        'total_aset'
    ];

    /**
     * Relasi ke Transaksi
     * Satu produk (misal: LPG 3kg) bisa ada di banyak baris transaksi
     */
    public function transaksi()
    {
        return $this->hasMany(Transaksi::class, 'id_produk', 'id_produk');
    }

    // Tambahkan scope untuk filter produk aktif
public function scopeActive($query)
{
    return $query->where('is_active', true)
                ->orWhereNull('is_active');
}

// Relasi ke price_settings
public function priceSetting()
{
    return $this->hasOne(\App\Models\PriceSetting::class, 'id_price_setting', 'id_produk');
}
}