48 lines
1.6 KiB
PHP
48 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\ClientTiers;
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class ClientTierStoreRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*/
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*/
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'tier_name' => ['required', 'string', 'max:100', 'unique:client_tiers,tier_name'],
|
|
'min_purchase_amount' => ['required', 'numeric', 'min:0'],
|
|
'max_purchase_amount' => ['nullable', 'numeric', 'gt:min_purchase_amount'],
|
|
'discount_percentage' => ['required', 'numeric', 'min:0', 'max:100'],
|
|
'is_active' => ['boolean'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get custom messages for validator errors.
|
|
*/
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'tier_name.required' => 'El nombre del tier es requerido',
|
|
'tier_name.unique' => 'Ya existe un tier con este nombre',
|
|
'min_purchase_amount.required' => 'El monto mínimo es requerido',
|
|
'min_purchase_amount.min' => 'El monto mínimo debe ser mayor o igual a 0',
|
|
'max_purchase_amount.gt' => 'El monto máximo debe ser mayor al monto mínimo',
|
|
'discount_percentage.required' => 'El porcentaje de descuento es requerido',
|
|
'discount_percentage.min' => 'El descuento debe ser mayor o igual a 0',
|
|
'discount_percentage.max' => 'El descuento no puede ser mayor a 100%',
|
|
];
|
|
}
|
|
}
|