File: /var/www/ipsremont-demo/app/Http/Requests/Repair/CreateRequest.php
<?php
namespace App\Http\Requests\Repair;
use App\Helpers\UserHelper;
use App\Http\Requests\Request;
/**
* @property int $order_id
* @property string $name
* @property string $email
* @property string $phone
* @property string $additional_info
* @property string $serial_number
* @property string $device_id
* @property string $sold_at
* @property string $repair_date
* @property string $inner_nbr
* @property string $address
* @property string $custom_component_sku
* @property string $custom_component_name
* @property string $use_catalog_component
*/
class CreateRequest extends Request
{
public function rules(): array
{
$rules = [];
$user = UserHelper::getUser();
if ($user->isService()) {
$rules += [
'name' => ['string', 'required'],
'email' => ['email', 'required'],
'phone' => ['string', 'required'],
];
} else {
$rules += [
'name' => ['string', 'nullable'],
'email' => ['email', 'nullable'],
'phone' => ['string', 'nullable'],
];
}
$rules += [
'additional_info' => ['string', 'required'],
'serial_number' => ['string', 'required'],
'sold_at' => ['date_format:Y-m-d', 'nullable', 'required_unless:pre_sale,1'],
'repair_date' => ['required', 'date_format:Y-m-d'],
'inner_nbr' => ['string', 'nullable'],
'address' => ['string', 'nullable'],
'device_id' => ['integer', 'nullable', 'required_if:use_catalog_component,1'],
];
return $rules;
}
protected function prepareForValidation()
{
$this->merge([
'phone' => preg_replace('/[^0-9]/', '', $this->phone),
'sold_at' => $this->dateFromJs($this->sold_at),
'repair_date' => $this->dateFromJs($this->repair_date),
]);
}
public function messages(): array
{
return [
'sold_at.required_unless' => 'Поле Продано обязательно для заполнения если не выбран Предторг',
];
}
}