first&last
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire\MyRequests;
|
||||
|
||||
use App\Enums\StatusSlug;
|
||||
use App\Models\Equipment;
|
||||
use App\Models\Priority;
|
||||
use App\Models\RequestType;
|
||||
use App\Models\Status;
|
||||
use App\Services\RequestService;
|
||||
use Livewire\Attributes\Layout;
|
||||
use Livewire\Component;
|
||||
|
||||
#[Layout('layouts.app')]
|
||||
class MyRequestFormPage extends Component
|
||||
{
|
||||
public string $title = '';
|
||||
|
||||
public string $description = '';
|
||||
|
||||
public string $typeId = '';
|
||||
|
||||
public string $equipmentId = '';
|
||||
|
||||
public string $priorityId = '';
|
||||
|
||||
public function mount(): void
|
||||
{
|
||||
abort_unless(auth()->user()->isClient(), 403);
|
||||
$this->priorityId = (string) Priority::query()->where('level', 2)->value('id');
|
||||
}
|
||||
|
||||
public function save(RequestService $requestService)
|
||||
{
|
||||
$this->validate([
|
||||
'title' => ['required', 'string', 'max:255'],
|
||||
'description' => ['required', 'string'],
|
||||
'typeId' => ['required', 'exists:request_types,id'],
|
||||
'priorityId' => ['required', 'exists:priorities,id'],
|
||||
'equipmentId' => ['nullable', 'exists:equipment,id'],
|
||||
]);
|
||||
|
||||
$statusId = (string) Status::query()->where('slug', StatusSlug::NEW->value)->value('id');
|
||||
|
||||
$request = $requestService->create([
|
||||
'title' => $this->title,
|
||||
'description' => $this->description,
|
||||
'type_id' => $this->typeId,
|
||||
'priority_id' => $this->priorityId,
|
||||
'status_id' => $statusId,
|
||||
'client_id' => auth()->id(),
|
||||
'equipment_id' => $this->equipmentId ?: null,
|
||||
'assigned_to' => null,
|
||||
], auth()->user());
|
||||
|
||||
session()->flash('success', 'Заявка создана.');
|
||||
|
||||
return redirect()->route('my-requests.show', $request);
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.my-requests.my-request-form-page', [
|
||||
'types' => RequestType::query()->orderBy('name')->get(),
|
||||
'equipmentItems' => Equipment::query()->where('client_id', auth()->id())->orderBy('name')->get(),
|
||||
'priorities' => Priority::query()->orderBy('level')->get(),
|
||||
])->title('Создание заявки');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user