69 lines
2.1 KiB
PHP
69 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Event\Controllers\AdminApp;
|
|
|
|
use App\Domains\Event\Models\EventDate;
|
|
use App\Domains\Event\Requests\RescheduleEventDateRequest;
|
|
use App\Domains\Event\Requests\StoreEventDateRequest;
|
|
use App\Domains\Event\Requests\UpdateEventRequest;
|
|
use App\Domains\Event\Resources\EventDateResource;
|
|
use App\Domains\Event\Resources\EventResource;
|
|
use App\Domains\Event\Services\EventService;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
|
|
class EventController extends Controller
|
|
{
|
|
public function __construct(protected EventService $eventService) {}
|
|
|
|
public function show(Request $request): EventResource
|
|
{
|
|
return EventResource::make(
|
|
$this->eventService->forTenant($request->user()->tenant()->firstOrFail())
|
|
);
|
|
}
|
|
|
|
public function update(UpdateEventRequest $request): EventResource
|
|
{
|
|
return EventResource::make(
|
|
$this->eventService->updateForTenant(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$request->validated()
|
|
)
|
|
);
|
|
}
|
|
|
|
public function storeDate(StoreEventDateRequest $request): EventDateResource
|
|
{
|
|
return EventDateResource::make(
|
|
$this->eventService->createDateForTenant(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$request->validated(),
|
|
)
|
|
);
|
|
}
|
|
|
|
public function rescheduleDate(
|
|
RescheduleEventDateRequest $request,
|
|
EventDate $eventDate,
|
|
): EventDateResource {
|
|
return EventDateResource::make(
|
|
$this->eventService->rescheduleDateForTenant(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$eventDate,
|
|
$request->validated(),
|
|
)
|
|
);
|
|
}
|
|
|
|
public function suspendDate(Request $request, EventDate $eventDate): EventDateResource
|
|
{
|
|
return EventDateResource::make(
|
|
$this->eventService->suspendDateForTenant(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$eventDate,
|
|
)
|
|
);
|
|
}
|
|
}
|