feat(scanner): implement category validation for AdminApp role and update tests

This commit is contained in:
2026-09-04 10:40:46 -03:00
parent 7acef66ee7
commit ffa3f10b18
2 changed files with 49 additions and 3 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Domains\Ticket\Services;
use App\Domains\Auth\Models\User;
use App\Domains\Authorization\Enums\RoleCode;
use App\Domains\Ticket\Models\Ticket;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Pagination\LengthAwarePaginator;
@@ -73,7 +74,7 @@ class ScannerTicketService
->where('tenant_code', $scanner->tenant_codigo)
->where('ticket', $ticketUuid);
if ($scanner->tenant()->firstOrFail()->requiresScannerCategoryValidation()) {
if ($this->requiresCategoryValidation($scanner)) {
$categoryIds = $this->scannerCategoryIds($scanner);
$query->where(function (Builder $query) use ($scanner, $categoryIds): void {
@@ -158,7 +159,7 @@ class ScannerTicketService
private function scannerCanScan(User $scanner, Ticket $ticket): bool
{
if (! $scanner->tenant()->firstOrFail()->requiresScannerCategoryValidation()) {
if (! $this->requiresCategoryValidation($scanner)) {
return true;
}
@@ -169,4 +170,10 @@ class ScannerTicketService
->where('categorias.id', $categoryId)
->exists();
}
private function requiresCategoryValidation(User $scanner): bool
{
return $scanner->rol_codigo !== RoleCode::AdminApp->value
&& $scanner->tenant()->firstOrFail()->requiresScannerCategoryValidation();
}
}