28 lines
796 B
PHP
28 lines
796 B
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Api\Order;
|
|
|
|
use App\Support\BillingCycleCatalog;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class CouponPreviewRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'coupon_code' => ['required', 'string', 'max:50'],
|
|
'product_id' => ['required', Rule::exists('products', 'uuid')->whereNull('deleted_at')],
|
|
'billing_cycle' => ['required', Rule::in([...BillingCycleCatalog::codes(), 'onetime'])],
|
|
'addons' => 'array',
|
|
'addons.*.addon_id' => 'nullable|exists:product_addon,id',
|
|
'addons.*.qty' => 'nullable|integer|min:0|max:1000000',
|
|
];
|
|
}
|
|
}
|