<?php

namespace App\Models;

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

class Producto extends Model
{
    use HasFactory;

    protected $table = 'productos';

    protected $fillable = [
        'codigo',
        'nombre',
        'fragancia',
        'presentacion',
        'categoria_id',
        'costo_1k',
        'iva_19',
        'costo_1k_con_iva',
        'costo_gr',
        'costo_frag_cf_cv',
        'precio_30',
        'precio_50',
        'precio_75',
        'precio_100',
        'stock_actual',
        'stock_minimo',
        'estado'
    ];

    protected $casts = [
        'costo_1k' => 'decimal:2',
        'iva_19' => 'decimal:2',
        'costo_1k_con_iva' => 'decimal:2',
        'costo_gr' => 'decimal:2',
        'costo_frag_cf_cv' => 'decimal:2',
        'precio_30' => 'decimal:2',
        'precio_50' => 'decimal:2',
        'precio_75' => 'decimal:2',
        'precio_100' => 'decimal:2',
        'stock_actual' => 'integer',
        'stock_minimo' => 'integer',
        'estado' => 'boolean'
    ];

    public function categoria()
    {
        return $this->belongsTo(Categoria::class, 'categoria_id');
    }

    public function scopeBajoStock($query)
    {
        return $query->whereColumn('stock_actual', '<=', 'stock_minimo');
    }

    public function scopeActivos($query)
    {
        return $query->where('estado', true);
    }

    public function costos()
    {
        return $this->hasMany(ProductoCosto::class);
    }
}
