add controllers, servoices

This commit is contained in:
root
2026-03-09 02:52:13 -04:00
parent c8de5f7edc
commit d76c871cb7
501 changed files with 34439 additions and 21843 deletions
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Discounts;
use App\Http\Requests\ApiFormRequest;
class ApplyDiscountVoucherRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'voucher_id' => ['required', 'integer', 'min:1', 'exists:discount_vouchers,id'],
'parent_ids' => ['required', 'array', 'min:1'],
'parent_ids.*' => ['integer', 'min:1'],
'allow_additional' => ['nullable', 'boolean'],
];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\Discounts;
use App\Http\Requests\ApiFormRequest;
class StoreDiscountVoucherRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'code' => ['required', 'string', 'max:50'],
'discount_type' => ['required', 'in:percent,fixed'],
'discount_value' => ['required', 'numeric', 'min:0'],
'max_uses' => ['nullable', 'integer', 'min:0'],
'valid_from' => ['nullable', 'date_format:Y-m-d'],
'valid_until' => ['nullable', 'date_format:Y-m-d', 'after_or_equal:valid_from'],
'is_active' => ['nullable', 'boolean'],
'description' => ['nullable', 'string'],
'school_year' => ['nullable', 'string'],
'semester' => ['nullable', 'string'],
];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\Discounts;
use App\Http\Requests\ApiFormRequest;
class UpdateDiscountVoucherRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'code' => ['sometimes', 'string', 'max:50'],
'discount_type' => ['sometimes', 'in:percent,fixed'],
'discount_value' => ['sometimes', 'numeric', 'min:0'],
'max_uses' => ['nullable', 'integer', 'min:0'],
'valid_from' => ['nullable', 'date_format:Y-m-d'],
'valid_until' => ['nullable', 'date_format:Y-m-d', 'after_or_equal:valid_from'],
'is_active' => ['nullable', 'boolean'],
'description' => ['nullable', 'string'],
'school_year' => ['nullable', 'string'],
'semester' => ['nullable', 'string'],
];
}
}