78 lines
2.6 KiB
PHP
78 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Coupons;
|
|
|
|
use App\Enums\UserRoles;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class UpdateCoupons extends FormRequest
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function authorize()
|
|
{
|
|
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'coupon_code' => [
|
|
'required',
|
|
Rule::unique('coupon', 'coupon_code')->ignore($this->coupon->coupon_id, 'coupon_id')
|
|
],
|
|
'coupon_name' => 'string|required',
|
|
'coupon_value' => 'numeric|required',
|
|
'coupon_seuil_alert' => 'integer|required',
|
|
'coupon_enablelimitperiod' => 'sometimes|integer|required',
|
|
'coupon_enablelimitquantity' => 'sometimes|integer|required',
|
|
'coupon_mindatediffusion' => 'nullable',
|
|
'coupon_maxdatediffusion' => 'nullable',
|
|
'coupon_validity' => 'integer|required',
|
|
'coupon_maxdatevalidity' => 'nullable',
|
|
|
|
'coupon_treatment_center' => 'integer|required',
|
|
'coupon_validity_text' => 'required',
|
|
'coupon_legal_mentions' => 'required',
|
|
|
|
'coupon_rcs' => 'required',
|
|
'coupon_site_contact' => 'email|required',
|
|
|
|
'coupon_norme' => 'sometimes|integer|required',
|
|
'coupon_published' => 'sometimes|integer|required',
|
|
'coupon_legal_mentions_splitted' => 'sometimes|integer|required',
|
|
'coupon_decoration_image' => 'image|mimes:jpeg,png',
|
|
'coupon_logo_image' => 'image|mimes:jpeg,png',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Configure the validator instance.
|
|
*
|
|
* @param \Illuminate\Contracts\Validation\Validator $validator
|
|
* @return void
|
|
*/
|
|
public function withValidator($validator)
|
|
{
|
|
$validator->sometimes('coupon_gs1code', 'required|image|mimes:jpeg', function ($input) {
|
|
if (isset($input->coupon_gs1code_image_hidden)) {
|
|
return false;
|
|
}
|
|
return isset($input->coupon_norme);
|
|
});
|
|
|
|
$validator->sometimes('coupon_limitquantity', 'integer|required', fn($input) => !is_null($input->coupon_enablelimitquantity));
|
|
|
|
$validator->sometimes('coupon_limitperiod', 'integer|required', fn($input) => !is_null($input->coupon_enablelimitperiod));
|
|
}
|
|
}
|