File: /var/www/ipsremont-demo/app/Http/Requests/Repair/IndexRequest.php
<?php
namespace App\Http\Requests\Repair;
use App\Http\Requests\Request;
use App\Models\Repair\Repair;
use Illuminate\Validation\Rule;
/**
* @property $sortable
* @property $field
* @property $sort
* @property $service_id
* @property $branch_id
* @property $status
* @property $id
* @property $order_id
* @property $device_id
* @property $serial_number
* @property $client
* @property $date_start
* @property $date_end
*/
class IndexRequest extends Request
{
/**
* @return array
*/
public function rules(): array
{
return [
'sortable' => ['nullable', 'boolean'],
'field' => ['nullable', Rule::in(Repair::getSortableFields())],
'sort' => ['nullable', Rule::in(['asc', 'desc'])],
'service_id' => ['integer', 'nullable'],
'branch_id' => ['integer', 'nullable'],
'status' => ['string', 'nullable'],
'id' => ['integer', 'nullable',],
'order_id' => ['integer', 'nullable',],
'device_id' => ['integer', 'nullable'],
'serial_number' => ['string', 'nullable'],
'client' => ['string', 'nullable'],
'date_start' => ['date_format:Y-m-d', 'nullable', 'required_with:date_end'],
'date_end' => ['date_format:Y-m-d', 'nullable', 'required_with:date_start'],
];
}
protected function prepareForValidation()
{
$date = $this->dateFromRangeJs($this->repair_date);
$this->merge([
'id' => $this->numberToInt($this->id),
'order_id' => $this->numberToInt($this->order_id),
'date_start' => $date['start'],
'date_end' => $date['end'],
]);
}
}