<?php

namespace App\Traits;

use App\Models\Scopes\SucursalScope;

trait BelongsToSucursal
{
    /**
     * Boot the trait for a model.
     *
     * @return void
     */
    protected static function bootBelongsToSucursal()
    {
        // 1. Aplicar siempre el Global Scope para restringir lecturas
        static::addGlobalScope(new SucursalScope);

        // 2. Autocompletar el sucursal_id al crear un nuevo registro si no viene definido
        static::creating(function ($model) {
            if (session()->has('sucursal_id') && empty($model->sucursal_id)) {
                $model->sucursal_id = session('sucursal_id');
            }
        });
    }

    /**
     * Relación con la sucursal.
     */
    public function sucursal()
    {
        return $this->belongsTo(\App\Models\Sucursal::class, 'sucursal_id');
    }
}
