<?php

namespace App\Domains\Catalog\Models;

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

#[Fillable([
    'stock_reservation_id',
    'inventory_id',
    'quantity',
    'tracks_inventory',
])]
class StockReservationLine extends Model
{
    protected function casts(): array
    {
        return [
            'stock_reservation_id' => 'integer',
            'inventory_id' => 'integer',
            'quantity' => 'integer',
            'tracks_inventory' => 'boolean',
        ];
    }

    /** @return BelongsTo<StockReservation, $this> */
    public function reservation(): BelongsTo
    {
        return $this->belongsTo(StockReservation::class, 'stock_reservation_id');
    }

    /** @return BelongsTo<Inventory, $this> */
    public function inventory(): BelongsTo
    {
        return $this->belongsTo(Inventory::class);
    }
}
