38 lines
1.2 KiB
PHP
38 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Requests\Quote;
|
||
|
|
|
||
|
|
use App\Models\Quote\Quote;
|
||
|
|
use Illuminate\Foundation\Http\FormRequest;
|
||
|
|
|
||
|
|
class QuoteIndexRequest extends FormRequest
|
||
|
|
{
|
||
|
|
public function authorize(): bool
|
||
|
|
{
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function rules(): array
|
||
|
|
{
|
||
|
|
return [
|
||
|
|
'page' => 'nullable|integer|min:1',
|
||
|
|
'size' => 'nullable|integer|min:1|max:100',
|
||
|
|
'q' => 'nullable|string|max:100',
|
||
|
|
'status' => 'nullable|in:'.implode(',', [
|
||
|
|
Quote::STATUS_DRAFT,
|
||
|
|
Quote::STATUS_SENT,
|
||
|
|
Quote::STATUS_APPROVED,
|
||
|
|
Quote::STATUS_REJECTED,
|
||
|
|
Quote::STATUS_FINALIZED,
|
||
|
|
Quote::STATUS_CONVERTED,
|
||
|
|
]),
|
||
|
|
'product_category' => 'nullable|in:'.Quote::CATEGORY_SCREEN.','.Quote::CATEGORY_STEEL,
|
||
|
|
'client_id' => 'nullable|integer',
|
||
|
|
'date_from' => 'nullable|date',
|
||
|
|
'date_to' => 'nullable|date|after_or_equal:date_from',
|
||
|
|
'sort_by' => 'nullable|in:registration_date,quote_number,client_name,total_amount,status,created_at',
|
||
|
|
'sort_order' => 'nullable|in:asc,desc',
|
||
|
|
];
|
||
|
|
}
|
||
|
|
}
|