update api and add more features

This commit is contained in:
root
2026-06-04 02:24:41 -04:00
parent fa6c9519a0
commit 4e33882ac7
131 changed files with 34596 additions and 340 deletions
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class ApplyExtraChargeRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'invoice_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class ChargeListRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'parent_id' => ['required', 'integer', 'min:1'],
'school_year' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class FeeFamilyBalanceRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'parent_id' => ['required', 'integer', 'min:1'],
'school_year' => ['nullable', 'string', 'max:20'],
'students' => ['required', 'array', 'min:1'],
'students.*.student_id' => ['nullable', 'integer', 'min:1'],
'students.*.firstname' => ['nullable', 'string', 'max:100'],
'students.*.lastname' => ['nullable', 'string', 'max:100'],
'students.*.class_section_id' => ['nullable', 'integer', 'min:1'],
'students.*.grade' => ['nullable', 'string', 'max:20'],
'students.*.enrollment_status' => ['nullable', 'string', 'max:50'],
'students.*.admission_status' => ['nullable', 'string', 'max:50'],
'students.*.discount_amount' => ['nullable', 'numeric', 'min:0'],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class FeeTuitionBreakdownRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'students' => ['required', 'array', 'min:1'],
'students.*.student_id' => ['nullable', 'integer', 'min:1'],
'students.*.firstname' => ['nullable', 'string', 'max:100'],
'students.*.lastname' => ['nullable', 'string', 'max:100'],
'students.*.class_section_id' => ['nullable', 'integer', 'min:1'],
'students.*.grade' => ['nullable', 'string', 'max:20'],
'students.*.enrollment_status' => ['nullable', 'string', 'max:50'],
'students.*.admission_status' => ['nullable', 'string', 'max:50'],
'students.*.discount_amount' => ['nullable', 'numeric', 'min:0'],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class MarkEventChargePaidRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'paid' => ['required', 'boolean'],
'payment_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class StoreEventChargeRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'parent_id' => ['required', 'integer', 'min:1'],
'student_id' => ['required', 'integer', 'min:1'],
'event_id' => ['nullable', 'integer', 'min:1'],
'event_name' => ['required_without:event_id', 'nullable', 'string', 'max:255'],
'amount' => ['nullable', 'numeric', 'min:0'],
'description' => ['nullable', 'string', 'max:2000'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Finance;
use App\Http\Requests\ApiFormRequest;
class StoreExtraChargeRequest extends ApiFormRequest
{
public function authorize(): bool
{
return $this->user() !== null;
}
public function rules(): array
{
return [
'parent_id' => ['required', 'integer', 'min:1'],
'title' => ['required', 'string', 'min:2', 'max:255'],
'amount' => ['required', 'numeric', 'min:0.01'],
'charge_type' => ['required', 'in:add,deduct'],
'description' => ['nullable', 'string', 'max:2000'],
'due_date' => ['nullable', 'date_format:Y-m-d'],
'invoice_id' => ['nullable', 'integer', 'min:1'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
];
}
}