feat(forms): add desfile entry reservation form

This commit is contained in:
2026-09-23 16:28:35 -03:00
parent 5296d595f1
commit 5e78f2bb1e
6 changed files with 150 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Shared\Forms\Controllers\AdminApp;
use App\Http\Controllers\Controller;
use App\Shared\Forms\Resources\DesfileEntryReservationFormResource;
use App\Shared\Forms\Services\DesfileEntryReservationFormService;
class DesfileEntryReservationFormController extends Controller
{
public function __construct(
private readonly DesfileEntryReservationFormService $formService,
) {}
public function __invoke(): DesfileEntryReservationFormResource
{
return DesfileEntryReservationFormResource::make($this->formService->get());
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Shared\Forms\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class DesfileEntryReservationFormResource extends JsonResource
{
/** @return array<string, mixed> */
public function toArray(Request $request): array
{
return [
'payment_types' => $this->resource['payment_types'],
];
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Shared\Forms\Services;
use App\Domains\Ticketing\Desfile\Enums\EntryReservationPaymentType;
class DesfileEntryReservationFormService
{
/** @return array{payment_types: list<array{value: string, label: string}>} */
public function get(): array
{
return [
'payment_types' => EntryReservationPaymentType::options(),
];
}
}

View File

@@ -1,5 +1,6 @@
<?php
use App\Shared\Forms\Controllers\AdminApp\DesfileEntryReservationFormController;
use App\Shared\Forms\Controllers\AdminApp\EntryFormController;
use App\Shared\Forms\Controllers\AdminApp\EventFormController;
use App\Shared\Forms\Controllers\AdminApp\FoodFormController;
@@ -14,6 +15,11 @@ Route::prefix('v1/adminapp/forms')
->middleware(['auth:sanctum', 'adminapp.tenant'])
->group(function (): void {
Route::get('event', EventFormController::class);
Route::get(
'desfile/entry-reservation',
DesfileEntryReservationFormController::class
)->middleware('tenant.menu:adminapp.desfile.reservas')
->name('adminapp.forms.desfile.entry-reservation');
Route::get('sale', SaleFormController::class);
Route::get('staff', StaffFormController::class);
Route::get('tickets-filter', TicketFilterFormController::class)