<?php

namespace App\Models\Concerns;

use App\Support\Tenant;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;

/**
 * Global scope que filtra automáticamente por company_id según el tenant actual.
 * Se desactiva si el tenant no está seteado (rutas SuperAdmin globales).
 */
class CompanyScope implements Scope
{
    public function apply(Builder $builder, Model $model): void
    {
        if (! Tenant::check()) {
            return; // sin tenant, no se filtra (super admin global, jobs)
        }

        $builder->where(
            $model->qualifyColumn('company_id'),
            Tenant::id()
        );
    }
}
