| 12345678910111213141516171819202122232425262728 |
- <?php
- namespace App\Http\Controllers\Concerns;
- use App\Models\User;
- use Illuminate\Support\Facades\Auth;
- /**
- * Fornece um helper para obter o ID da unidade ativa da request.
- *
- * O middleware ResolveActiveUnit valida o header X-Unit-Id e injeta
- * 'active_unit_id' na request quando o usuário possui múltiplas unidades
- * e selecionou uma específica no frontend.
- * Se nenhuma unidade estiver selecionada, retorna a primeira unidade do usuário.
- */
- trait ResolvesActiveUnit
- {
- protected function activeUnitId(?User $user = null): ?int
- {
- $fromRequest = request()->input('active_unit_id');
- if ($fromRequest) {
- return (int) $fromRequest;
- }
- $user = $user ?? Auth::user()?->loadMissing('units');
- return $user?->units->first()?->id;
- }
- }
|