Files
nnterp-react-admin/app/Http/Requests/StoreCouponRequest.php
2026-03-13 20:49:46 +08:00

61 lines
2.7 KiB
PHP

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreCouponRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'code' => 'required|string|max:50|unique:coupons,code',
'discount' => 'required|numeric|min:0',
'limit' => 'nullable|integer|min:1',
'type' => 'required|in:percentage,flat,fixed',
'minimum_spend' => 'nullable|numeric|min:0',
'maximum_spend' => 'nullable|numeric|min:0',
'limit_per_user' => 'nullable|integer|min:1',
'expiry_date' => 'nullable|date|after:today',
'included_module' => 'nullable|array',
'excluded_module' => 'nullable|array',
'status' => 'boolean'
];
}
public function messages(): array
{
return [
'name.required' => __('Coupon name is required.'),
'name.string' => __('Coupon name must be a valid string.'),
'name.max' => __('Coupon name must not exceed 255 characters.'),
'description.string' => __('Description must be a valid string.'),
'code.required' => __('Coupon code is required.'),
'code.string' => __('Coupon code must be a valid string.'),
'code.max' => __('Coupon code must not exceed 50 characters.'),
'code.unique' => __('This coupon code already exists.'),
'discount.required' => __('Discount amount is required.'),
'discount.numeric' => __('Discount must be a valid number.'),
'discount.min' => __('Discount must be at least 0.'),
'limit.integer' => __('Usage limit must be a valid number.'),
'limit.min' => __('Usage limit must be at least 1.'),
'type.required' => __('Discount type is required.'),
'type.in' => __('Discount type must be percentage, flat, or fixed.'),
'minimum_spend.numeric' => __('Minimum spend must be a valid number.'),
'minimum_spend.min' => __('Minimum spend must be at least 0.'),
'maximum_spend.numeric' => __('Maximum spend must be a valid number.'),
'maximum_spend.min' => __('Maximum spend must be at least 0.'),
'limit_per_user.integer' => __('Limit per user must be a valid number.'),
'limit_per_user.min' => __('Limit per user must be at least 1.'),
'expiry_date.date' => __('Please enter a valid expiry date.'),
'expiry_date.after' => __('Expiry date must be after today.'),
];
}
}