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,22 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementBatchAdminFileRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'batch_id' => ['required', 'integer', 'min:1'],
'admin_id' => ['required', 'integer', 'min:0'],
'check_file' => ['required', 'file', 'max:5120', 'mimes:jpg,jpeg,png,webp,gif,pdf'],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementBatchAssignmentRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'expense_id' => ['required', 'integer', 'min:1'],
'batch_id' => ['nullable', 'integer', 'min:0'],
'batch_number' => ['nullable', 'integer', 'min:0'],
'admin_id' => ['nullable', 'integer', 'min:0'],
'reimbursement_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementBatchCreateRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'title' => ['nullable', 'string', 'max:255'],
];
}
}
@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementBatchEmailRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'batch_id' => ['required', 'integer', 'min:1'],
'recipient_email' => ['required', 'email'],
'message' => ['nullable', 'string'],
'receipts' => ['nullable', 'array'],
'receipts.*' => ['integer', 'min:1'],
'checks' => ['nullable', 'array'],
'checks.*' => ['integer', 'min:1'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementBatchLockRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'batch_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementExportBatchRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'batch_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementExportRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'type' => ['nullable', 'in:processed,under_processing'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
'status' => ['nullable', 'string', 'max:50'],
'user_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementIndexRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
'status' => ['nullable', 'string', 'max:50'],
'user_id' => ['nullable', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementMarkDonationRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'expense_id' => ['required', 'integer', 'min:1'],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementProcessRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'amount' => ['required', 'numeric', 'gt:0'],
'reimbursed_to' => ['required', 'integer', 'min:1'],
'reimbursement_method' => ['required', 'in:Cash,Check'],
'check_number' => ['required_if:reimbursement_method,Check', 'nullable', 'string', 'max:50'],
'receipt' => ['nullable', 'file', 'max:2048', 'mimes:jpg,jpeg,png,webp,gif,pdf'],
'expense_id' => ['nullable', 'integer', 'min:1'],
'description' => ['nullable', 'string'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementStoreRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'amount' => ['required', 'numeric', 'gt:0'],
'reimbursed_to' => ['required', 'integer', 'min:1'],
'reimbursement_method' => ['required', 'in:Cash,Check'],
'check_number' => ['required_if:reimbursement_method,Check', 'nullable', 'string', 'max:50'],
'receipt' => ['required_if:reimbursement_method,Check', 'nullable', 'file', 'max:2048', 'mimes:jpg,jpeg,png,webp,gif,pdf'],
'expense_id' => ['nullable', 'integer', 'min:1'],
'description' => ['nullable', 'string'],
'school_year' => ['nullable', 'string', 'max:20'],
'semester' => ['nullable', 'string', 'max:20'],
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementUnderProcessingRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [];
}
}
@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests\Reimbursements;
use App\Http\Requests\ApiFormRequest;
class ReimbursementUpdateRequest extends ApiFormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'amount' => ['required', 'numeric', 'gt:0'],
'reimbursed_to' => ['required', 'integer', 'min:1'],
'reimbursement_method' => ['required', 'in:Cash,Check'],
'check_number' => ['required_if:reimbursement_method,Check', 'nullable', 'string', 'max:50'],
'receipt' => ['nullable', 'file', 'max:2048', 'mimes:jpg,jpeg,png,webp,gif,pdf'],
'remove_receipt' => ['nullable', 'boolean'],
'description' => ['nullable', 'string'],
];
}
}