feat(staff): scope scanner management and category assignments by event
This commit is contained in:
@@ -2,9 +2,10 @@
|
||||
|
||||
namespace App\Shared\Forms\Controllers\AdminApp;
|
||||
|
||||
use App\Domains\Core\Auth\Services\EventScopeService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Shared\Forms\Resources\StaffFormResource;
|
||||
use App\Shared\Forms\Services\StaffFormService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class StaffFormController extends Controller
|
||||
@@ -15,7 +16,8 @@ class StaffFormController extends Controller
|
||||
{
|
||||
return StaffFormResource::make(
|
||||
$this->staffFormService->get(
|
||||
$request->user('sanctum')->tenant()->firstOrFail()
|
||||
$request->user('sanctum')->tenant()->firstOrFail(),
|
||||
app(EventScopeService::class)->eventId($request->user())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Collection;
|
||||
class StaffFormService
|
||||
{
|
||||
/** @return array{categories: Collection<int, Category>} */
|
||||
public function get(Tenant $tenant): array
|
||||
public function get(Tenant $tenant, ?int $eventId = null): array
|
||||
{
|
||||
return [
|
||||
'categories' => Category::query()
|
||||
@@ -20,6 +20,8 @@ class StaffFormService
|
||||
->orWhereHas('catalogItems', fn (Builder $items) => $items
|
||||
->where('tenant_code', $tenant->codigo));
|
||||
})
|
||||
->when($eventId !== null, fn (Builder $query) => $query->whereHas(
|
||||
'catalogItems', fn (Builder $items) => $items->where('tenant_code', $tenant->codigo)->where('event_id', $eventId)))
|
||||
->orderBy('nombre')
|
||||
->get(),
|
||||
];
|
||||
|
||||
@@ -21,7 +21,7 @@ Route::prefix('v1/adminapp/forms')
|
||||
)->middleware('adminapp.tenant')->middleware('tenant.menu:adminapp.desfile.reservas')
|
||||
->name('adminapp.forms.desfile.entry-reservation');
|
||||
Route::get('sale', SaleFormController::class);
|
||||
Route::get('staff', StaffFormController::class)->middleware('adminapp.tenant');
|
||||
Route::get('staff', StaffFormController::class);
|
||||
Route::get('tickets-filter', TicketFilterFormController::class)->middleware('adminapp.tenant')
|
||||
->middleware('tenant.menu:adminapp.tickets')
|
||||
->name('adminapp.forms.tickets-filter');
|
||||
|
||||
Reference in New Issue
Block a user