File: /var/www/ipsremont-demo/app/Http/Requests/Order/CreateRequest.php
<?php
namespace App\Http\Requests\Order;
use App\Http\Requests\Request;
use App\Models\Service\Service;
use Illuminate\Support\Facades\Auth;
/**
* @property $repair
* @property ?string $additional_info
* @property int $address_id
* @property ?string $name
* @property ?string $email
* @property ?string $phone
* @property ?int $repair_id
* @property ?int $service_id
* @property ?int $branch_id
*/
class CreateRequest extends Request
{
public function rules(): array
{
$common = [
'repair' => ['required'],
'additional_info' => ['string', 'nullable'],
'address_id' => ['exists:App\Models\Address,id', 'required', 'integer'],
];
$additional = [];
if (!Auth::check() || Auth::user()->isService()) {
$additional += [
'name' => ['nullable', 'string'],
'email' => ['nullable', 'email'],
'phone' => ['nullable', 'string'],
'repair_id' => ['nullable', 'integer'],
];
}
if (Auth::check() && Auth::user()->isManager()) {
$additional += [
'service_id' => ['exists:' . Service::class . ',id', 'required', 'integer'],
'branch_id' => ['exists:App\Models\Branch,id', 'nullable', 'integer'],
];
}
return array_merge($common, $additional);
}
}