diff --git a/app/Domains/Ticket/Services/AdminAppTicketService.php b/app/Domains/Ticket/Services/AdminAppTicketService.php index 292c510..5f91dc8 100644 --- a/app/Domains/Ticket/Services/AdminAppTicketService.php +++ b/app/Domains/Ticket/Services/AdminAppTicketService.php @@ -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 + */ + 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