refactor(tickets): prepare filtered query for exports

This commit is contained in:
2026-08-31 12:03:11 -03:00
parent 52b0b339d6
commit 457eba68a9

View File

@@ -5,9 +5,19 @@ namespace App\Domains\Ticket\Services;
use App\Domains\Tenant\Models\Tenant;
use App\Domains\Ticket\Models\Ticket;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
class AdminAppTicketService
{
private const RELATIONS = [
...TicketValidityResolver::RELATIONS,
...TicketPresentationResolver::RELATIONS,
'user',
'scannerUser',
'sourceCatalogItem.category',
'sourcePurchase.items',
];
/**
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
*/
@@ -16,14 +26,7 @@ class AdminAppTicketService
$query = $this->baseQuery($tenant, $filters);
$tickets = (clone $query)
->with([
...TicketValidityResolver::RELATIONS,
...TicketPresentationResolver::RELATIONS,
'user',
'scannerUser',
'sourceCatalogItem.category',
'sourcePurchase.items',
])
->with(self::RELATIONS)
->orderByDesc('id')
->paginateFromRequest()
->withQueryString();
@@ -35,6 +38,18 @@ class AdminAppTicketService
);
}
/**
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null} $filters
* @return Collection<int, Ticket>
*/
public function ticketsForExport(Tenant $tenant, array $filters = []): Collection
{
return $this->baseQuery($tenant, $filters)
->with(self::RELATIONS)
->orderByDesc('id')
->get();
}
/**
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
* @return Builder<Ticket>