<?php namespace Koneko\VuexyWarehouse\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Koneko\VuexyAdmin\Models\User; use Koneko\VuexyStoreManager\Models\Store; use Koneko\VuexyStoreManager\Models\StoreWorkCenter; class Warehouse extends Model { use HasFactory; protected $fillable = [ 'store_id', 'work_center_id', 'code', 'name', 'description', 'manager_id', 'tel', 'tel2', 'priority', 'status', ]; protected $casts = [ 'priority' => 'integer', 'status' => 'boolean', ]; /** * Nombre de la etiqueta para generar Componentes * * @var string */ public $tagName = 'Warehouse'; /** * Nombre de la columna que contiee el nombre del registro * * @var string */ public $columnNameLabel = 'name'; /** * Nombre singular del registro. * * @var string */ public $singularName = 'almacén'; /** * Nombre plural del registro. * * @var string */ public $pluralName = 'almacenes'; /** * Relación con la sucursal a la que pertenece el almacén. */ public function store(): BelongsTo { return $this->belongsTo(Store::class, 'store_id'); } /** * Relación con el usuario que gestiona el centro de trabajo. */ public function manager(): BelongsTo { return $this->belongsTo(User::class, 'manager_id'); } /** * Relación con la sucursal a la que pertenece el almacén. */ public function workcenter(): BelongsTo { return $this->belongsTo(StoreWorkCenter::class, 'work_center_id'); } /** * Relación con los movimientos de inventario del almacén. */ public function movements(): HasMany { return $this->hasMany(WarehouseMovement::class, 'warehouse_id'); } }