reconstruction of the project

This commit is contained in:
root
2026-03-08 16:33:24 -04:00
parent 23b7db1107
commit c8de5f7edc
9157 changed files with 77877 additions and 1073823 deletions
@@ -0,0 +1,43 @@
<?php
namespace App\Http\Controllers\Api\Administrator;
use App\Http\Controllers\Controller;
use App\Http\Requests\Administrator\SubmitAdministratorAbsenceRequest;
use App\Services\Administrator\AdministratorAbsenceService;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Auth;
class AdministratorAbsenceController extends Controller
{
public function __construct(
protected AdministratorAbsenceService $service
) {
}
public function index(): JsonResponse
{
$userId = (int) Auth::id();
if ($userId <= 0) {
return response()->json(['message' => 'Please log in first.'], 401);
}
return response()->json($this->service->getAbsenceFormData($userId));
}
public function store(SubmitAdministratorAbsenceRequest $request): JsonResponse
{
$userId = (int) Auth::id();
if ($userId <= 0) {
return response()->json(['message' => 'Please log in first.'], 401);
}
$result = $this->service->submit($request, $userId);
return response()->json([
'message' => $result['message'],
'saved' => $result['saved'] ?? 0,
'dates' => $result['dates'] ?? [],
], $result['status']);
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers\Api\Administrator;
use App\Http\Controllers\Controller;
use App\Services\Administrator\AdministratorDashboardService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class AdministratorDashboardController extends Controller
{
public function __construct(
protected AdministratorDashboardService $service
) {
}
public function metrics(): JsonResponse
{
return response()->json($this->service->metrics());
}
public function userSearch(Request $request): JsonResponse
{
return response()->json(
$this->service->userSearch((string) $request->query('query', ''))
);
}
}
@@ -0,0 +1,48 @@
<?php
namespace App\Http\Controllers\Api\Administrator;
use App\Http\Controllers\Controller;
use App\Http\Requests\Administrator\UpdateEnrollmentStatusesRequest;
use App\Services\Administrator\AdministratorEnrollmentService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AdministratorEnrollmentController extends Controller
{
public function __construct(
protected AdministratorEnrollmentService $service
) {
}
public function index(Request $request): JsonResponse
{
return response()->json(
$this->service->enrollmentWithdrawalData(
(string) $request->query('schoolYear', '')
)
);
}
public function newStudents(): JsonResponse
{
return response()->json($this->service->showNewStudentsData());
}
public function updateStatuses(UpdateEnrollmentStatusesRequest $request): JsonResponse
{
$editorUserId = (int) Auth::id();
if ($editorUserId <= 0) {
return response()->json(['message' => 'Please log in first.'], 401);
}
$data = $request->validated();
$result = $this->service->updateStatuses(
(array) ($data['enrollment_status'] ?? []),
$editorUserId
);
return response()->json(['message' => $result['message']], $result['status']);
}
}
@@ -0,0 +1,47 @@
<?php
namespace App\Http\Controllers\Api\Administrator;
use App\Http\Controllers\Controller;
use App\Http\Requests\Administrator\SaveAdminNotificationSubjectsRequest;
use App\Http\Requests\Administrator\SavePrintRecipientsRequest;
use App\Services\Administrator\AdministratorNotificationService;
use Illuminate\Http\JsonResponse;
class AdministratorNotificationController extends Controller
{
public function __construct(
protected AdministratorNotificationService $service
) {
}
public function alerts(): JsonResponse
{
return response()->json($this->service->notificationsAlertsData());
}
public function saveAlerts(SaveAdminNotificationSubjectsRequest $request): JsonResponse
{
$data = $request->validated();
$result = $this->service->saveNotificationSubjects(
(array) ($data['subjects'] ?? [])
);
return response()->json(['message' => $result['message']], $result['status']);
}
public function printRecipients(): JsonResponse
{
return response()->json($this->service->printNotificationRecipientsData());
}
public function savePrintRecipients(SavePrintRecipientsRequest $request): JsonResponse
{
$data = $request->validated();
$result = $this->service->savePrintNotificationRecipients(
(array) ($data['notify'] ?? [])
);
return response()->json(['message' => $result['message']], $result['status']);
}
}
@@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers\Api\Administrator;
use App\Http\Controllers\Controller;
use App\Http\Requests\Administrator\SendTeacherSubmissionNotificationsRequest;
use App\Services\Administrator\AdministratorTeacherSubmissionService;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Auth;
class AdministratorTeacherSubmissionController extends Controller
{
public function __construct(
protected AdministratorTeacherSubmissionService $service
) {
}
public function index(): JsonResponse
{
return response()->json($this->service->report());
}
public function notify(SendTeacherSubmissionNotificationsRequest $request): JsonResponse
{
$adminId = (int) Auth::id();
if ($adminId <= 0) {
return response()->json(['message' => 'Please log in first.'], 401);
}
$result = $this->service->sendNotifications($request, $adminId);
return response()->json([
'message' => $result['message'],
'sent' => $result['sent'] ?? 0,
'failed' => $result['failed'] ?? 0,
], $result['status']);
}
}