<?php

namespace App\Models\Traits;

use Illuminate\Database\Eloquent\Builder;

trait BelongsToEscola
{
    protected static function bootBelongsToEscola()
    {
        static::addGlobalScope('escola', function (Builder $builder) {

            $user = auth()->user();

            // Sem usuário logado: não filtra
            if (!$user) {
                return;
            }

            // Super admin: vê tudo (não filtra por escola)
            if ($user->is_super_admin) {
                return;
            }

            // Usuário comum: filtra pela escola atual
            if ($user->current_escola_id) {
                $builder->where('id_escola', $user->current_escola_id);
            }
        });

        static::creating(function ($model) {

            $user = auth()->user();

            if (!$user) {
                return;
            }

            // Super admin: não força id_escola automaticamente
            if ($user->is_super_admin) {
                return;
            }

            // Se não veio id_escola, seta pela escola atual do usuário
            if (!$model->id_escola) {
                $model->id_escola = $user->current_escola_id;
            }
        });
    }
}
