<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Model;

class TraspasoCaja extends Model
{
    protected $table = 'traspasos_caja';

    public $timestamps = false;

    protected $fillable = [
        'empresa_id',
        'apertura_origen_id',
        'apertura_destino_id',
        'usuario_origen_id',
        'usuario_destino_id',
        'monto',
        'estado',
        'concepto',
        'observacion',
        'respondido_por_id',
        'respondido_at',
        'observacion_respuesta',
    ];

    protected function casts(): array
    {
        return [
            'monto' => 'decimal:2',
            'respondido_at' => 'datetime',
            'created_at' => 'datetime',
        ];
    }

    public function usuarioDestino(): BelongsTo
    {
        return $this->belongsTo(User::class, 'usuario_destino_id');
    }
    public function respondidoPor(): BelongsTo
    {
        return $this->belongsTo(User::class, 'respondido_por_id');
    }
    public function empresa(): BelongsTo
    {
        return $this->belongsTo(Empresa::class, 'empresa_id');
    }
    public function aperturaOrigen(): BelongsTo
    {
        return $this->belongsTo(AperturaCaja::class, 'apertura_origen_id');
    }
    public function aperturaDestino(): BelongsTo
    {
        return $this->belongsTo(AperturaCaja::class, 'apertura_destino_id');
    }
    public function usuarioOrigen(): BelongsTo
    {
        return $this->belongsTo(User::class, 'usuario_origen_id');
    }
}
