add all controllers logic

This commit is contained in:
root
2026-03-11 17:53:15 -04:00
parent 3e6c577085
commit 2ef71cc92b
421 changed files with 12009 additions and 5211 deletions
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Resources\Attendance;
use Illuminate\Http\Resources\Json\ResourceCollection;
class LateSlipLogCollection extends ResourceCollection
{
public $collects = LateSlipLogResource::class;
public function toArray($request): array
{
return parent::toArray($request);
}
public function with($request): array
{
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources\Attendance;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class LateSlipLogResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource->id ?? null,
'school_year' => $this->resource->school_year ?? null,
'semester' => $this->resource->semester ?? null,
'student_name' => $this->resource->student_name ?? null,
'slip_date' => $this->resource->slip_date ?? null,
'time_in' => $this->resource->time_in ?? null,
'grade' => $this->resource->grade ?? null,
'reason' => $this->resource->reason ?? null,
'admin_name' => $this->resource->admin_name ?? null,
'printed_by' => $this->resource->printed_by ?? null,
'printed_at' => $this->resource->printed_at ?? null,
'created_at' => $this->resource->created_at ?? null,
'updated_at' => $this->resource->updated_at ?? null,
];
}
}
@@ -1,20 +0,0 @@
<?php
namespace App\Http\Resources\Auth;
use Illuminate\Http\Resources\Json\JsonResource;
class SessionTimeoutConfigResource extends JsonResource
{
public function toArray($request): array
{
return [
'timeout' => (int) ($this['timeout'] ?? 0),
'warning_time' => (int) ($this['warning_time'] ?? 0),
'check_interval' => (int) ($this['check_interval'] ?? 0),
'logout_url' => (string) ($this['logout_url'] ?? ''),
'keep_alive_url' => (string) ($this['keep_alive_url'] ?? ''),
'check_url' => (string) ($this['check_url'] ?? ''),
];
}
}
@@ -1,18 +0,0 @@
<?php
namespace App\Http\Resources\Auth;
use Illuminate\Http\Resources\Json\JsonResource;
class SessionTimeoutStatusResource extends JsonResource
{
public function toArray($request): array
{
return [
'status' => (string) ($this['status'] ?? ''),
'time_remaining' => (int) ($this['time_remaining'] ?? 0),
'redirect' => $this['redirect'] ?? null,
'message' => $this['message'] ?? null,
];
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Http\Resources\ClassPreparation;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ClassPreparationPrintResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'class_section_id' => $this->resource['class_section_id'] ?? null,
'class_section' => $this->resource['class_section'] ?? null,
'school_year' => $this->resource['school_year'] ?? null,
'semester' => $this->resource['semester'] ?? null,
'prep_items' => $this->resource['prep_items'] ?? [],
'adjustments' => $this->resource['adjustments'] ?? [],
'printed_at' => $this->resource['printed_at'] ?? null,
];
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Resources\ClassPreparation;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ClassPreparationResultResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'class_section' => $this->resource['class_section'] ?? null,
'class_section_id' => $this->resource['class_section_id'] ?? null,
'student_count' => $this->resource['student_count'] ?? 0,
'class_level' => $this->resource['class_level'] ?? null,
'prep_items' => $this->resource['prep_items'] ?? [],
'needs_print' => $this->resource['needs_print'] ?? false,
'last_printed_at' => $this->resource['last_printed_at'] ?? null,
'adjustments' => $this->resource['adjustments'] ?? [],
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Resources\Classes;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ClassAttendanceResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'teacher_name' => $this->resource['teacher_name'] ?? null,
'class_name' => $this->resource['class_name'] ?? null,
'class_section_id' => $this->resource['class_section_id'] ?? null,
'semester' => $this->resource['semester'] ?? null,
'school_year' => $this->resource['school_year'] ?? null,
'students' => ClassAttendanceStudentResource::collection($this->resource['students'] ?? []),
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Resources\Classes;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ClassAttendanceStudentResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'student_id' => $this->resource['student_id'] ?? null,
'school_id' => $this->resource['school_id'] ?? null,
'firstname' => $this->resource['firstname'] ?? null,
'lastname' => $this->resource['lastname'] ?? null,
'class_section_id' => $this->resource['class_section_id'] ?? null,
'updated_by' => $this->resource['updated_by'] ?? null,
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Resources\Classes;
use Illuminate\Http\Resources\Json\ResourceCollection;
class ClassSectionCollection extends ResourceCollection
{
public $collects = ClassSectionResource::class;
public function toArray($request): array
{
return parent::toArray($request);
}
public function with($request): array
{
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources\Classes;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ClassSectionResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource->id ?? null,
'class_id' => $this->resource->class_id ?? null,
'class_section_id' => $this->resource->class_section_id ?? null,
'class_section_name' => $this->resource->class_section_name ?? null,
'class_name' => $this->resource->class_name ?? null,
'semester' => $this->resource->semester ?? null,
'school_year' => $this->resource->school_year ?? null,
'created_at' => $this->resource->created_at ?? null,
'updated_at' => $this->resource->updated_at ?? null,
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ContactSubmissionResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'email' => $this->resource['email'] ?? null,
'email_sent' => (bool) ($this->resource['email_sent'] ?? false),
'contact_id' => $this->resource['contact_id'] ?? null,
];
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class FrontendPageResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'page' => $this->resource['page'] ?? null,
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class FrontendUserResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'firstname' => $this->firstname ?? null,
'lastname' => $this->lastname ?? null,
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class LandingPageResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'role' => $this->resource['role'] ?? null,
'dashboard' => $this->resource['dashboard'] ?? null,
'summary' => $this->resource['summary'] ?? null,
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PageContentResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'type' => $this->resource['type'] ?? null,
'content' => $this->resource['content'] ?? null,
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Resources\Frontend;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ProfileIconResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'user_name' => $this->resource['userName'] ?? null,
'user_initials' => $this->resource['userInitials'] ?? null,
];
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Resources\Messaging;
use Illuminate\Http\Resources\Json\ResourceCollection;
class MessageCollection extends ResourceCollection
{
public function with($request): array
{
if (!method_exists($this->resource, 'total')) {
return [];
}
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
public function toArray($request): array
{
return $this->collection->map(function ($item) use ($request) {
return (new MessageResource($item))->toArray($request);
})->all();
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Resources\Messaging;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class MessageResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id ?? null,
'sender_id' => $this->sender_id ?? null,
'recipient_id' => $this->recipient_id ?? null,
'subject' => $this->subject ?? null,
'message' => $this->message ?? null,
'sent_datetime' => optional($this->sent_datetime)->toDateTimeString(),
'read_status' => (bool) ($this->read_status ?? false),
'read_datetime' => optional($this->read_datetime)->toDateTimeString(),
'message_number' => $this->message_number ?? null,
'priority' => $this->priority ?? null,
'attachment' => $this->attachment ?? null,
'status' => $this->status ?? null,
'semester' => $this->semester ?? null,
'school_year' => $this->school_year ?? null,
'sender_name' => $this->sender ? trim($this->sender->firstname . ' ' . $this->sender->lastname) : null,
'recipient_name' => $this->recipient ? trim($this->recipient->firstname . ' ' . $this->recipient->lastname) : null,
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Resources\Messaging;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class RecipientResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource['id'] ?? null,
'name' => $this->resource['name'] ?? null,
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Resources\Preferences;
use Illuminate\Http\Resources\Json\ResourceCollection;
class PreferencesCollection extends ResourceCollection
{
public $collects = PreferencesListResource::class;
public function toArray($request): array
{
return parent::toArray($request);
}
public function with($request): array
{
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources\Preferences;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PreferencesListResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource->id ?? null,
'user_id' => $this->resource->user_id ?? null,
'firstname' => $this->resource->firstname ?? null,
'lastname' => $this->resource->lastname ?? null,
'email' => $this->resource->email ?? null,
'receive_email_notifications' => (bool) ($this->resource->notification_email ?? false),
'receive_sms_notifications' => (bool) ($this->resource->notification_sms ?? false),
'theme' => $this->resource->theme ?? null,
'language' => $this->resource->language ?? null,
'style_color' => $this->resource->style_color ?? null,
'menu_color' => $this->resource->menu_color ?? null,
'created_at' => $this->resource->created_at ?? null,
'updated_at' => $this->resource->updated_at ?? null,
];
}
}
@@ -0,0 +1,21 @@
<?php
namespace App\Http\Resources\Preferences;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PreferencesResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'receive_email_notifications' => $this->resource['receive_email_notifications'] ?? false,
'receive_sms_notifications' => $this->resource['receive_sms_notifications'] ?? false,
'theme' => $this->resource['theme'] ?? null,
'language' => $this->resource['language'] ?? null,
'style_color' => $this->resource['style_color'] ?? null,
'menu_color' => $this->resource['menu_color'] ?? null,
];
}
}
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Resources\Security;
use Illuminate\Http\Resources\Json\ResourceCollection;
class IpBanCollection extends ResourceCollection
{
public $collects = IpBanResource::class;
public function toArray($request): array
{
return parent::toArray($request);
}
public function with($request): array
{
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,26 @@
<?php
namespace App\Http\Resources\Security;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class IpBanResource extends JsonResource
{
public function toArray(Request $request): array
{
$blockedUntil = $this->resource->blocked_until ?? null;
$isActive = $blockedUntil !== null && $blockedUntil > now('UTC');
return [
'id' => $this->resource->id ?? null,
'ip_address' => $this->resource->ip_address ?? null,
'attempts' => $this->resource->attempts ?? 0,
'last_attempt_at' => $this->resource->last_attempt_at ?? null,
'blocked_until' => $blockedUntil,
'is_active' => $isActive,
'created_at' => $this->resource->created_at ?? null,
'updated_at' => $this->resource->updated_at ?? null,
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Resources\Settings;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PolicyResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'type' => $this->resource['type'] ?? null,
'title' => $this->resource['title'] ?? null,
'format' => $this->resource['format'] ?? 'html',
'content' => $this->resource['content'] ?? '',
'updated_at' => $this->resource['updated_at'] ?? null,
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Resources\Settings;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class SettingsResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'site_name' => $this->resource['site_name'] ?? null,
'administrator_email' => $this->resource['administrator_email'] ?? null,
'timezone' => $this->resource['timezone'] ?? null,
];
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Resources\Staff;
use Illuminate\Http\Resources\Json\ResourceCollection;
class StaffCollection extends ResourceCollection
{
public function toArray($request): array
{
return $this->collection->map(function ($item) use ($request) {
return (new StaffResource($item))->toArray($request);
})->all();
}
public function with($request): array
{
if (!method_exists($this->resource, 'total')) {
return [];
}
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Http\Resources\Staff;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class StaffResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id ?? null,
'user_id' => $this->user_id ?? null,
'firstname' => $this->firstname ?? null,
'lastname' => $this->lastname ?? null,
'email' => $this->email ?? null,
'phone' => $this->phone ?? null,
'role_name' => $this->role_name ?? null,
'active_role' => $this->active_role ?? null,
'school_year' => $this->school_year ?? null,
'class_section' => $this->class_section ?? null,
'verification_issue' => (bool) ($this->verification_issue ?? false),
'school_id' => $this->school_id ?? null,
'created_at' => optional($this->created_at)->toDateTimeString(),
'updated_at' => optional($this->updated_at)->toDateTimeString(),
];
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Resources\Support;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ContactMessageResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'email_sent' => (bool) ($this->resource['email_sent'] ?? false),
'recipient' => $this->resource['recipient'] ?? null,
];
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Resources\Support;
use Illuminate\Http\Resources\Json\ResourceCollection;
class SupportRequestCollection extends ResourceCollection
{
public function toArray($request): array
{
return $this->collection->map(function ($item) use ($request) {
return (new SupportRequestResource($item))->toArray($request);
})->all();
}
public function with($request): array
{
if (!method_exists($this->resource, 'total')) {
return [];
}
return [
'meta' => [
'total' => $this->resource->total() ?? null,
'per_page' => $this->resource->perPage() ?? null,
'current_page' => $this->resource->currentPage() ?? null,
'last_page' => $this->resource->lastPage() ?? null,
],
];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources\Support;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class SupportRequestResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id ?? null,
'user_id' => $this->user_id ?? null,
'subject' => $this->subject ?? null,
'message' => $this->message ?? null,
'status' => $this->status ?? null,
'semester' => $this->semester ?? null,
'school_year' => $this->school_year ?? null,
'created_at' => optional($this->created_at)->toDateTimeString(),
'updated_at' => optional($this->updated_at)->toDateTimeString(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Http\Resources\System;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class DashboardRouteResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'route' => $this->resource['route'] ?? null,
'role' => $this->resource['role'] ?? null,
'role_slug' => $this->resource['role_slug'] ?? null,
'roles' => $this->resource['roles'] ?? [],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Resources\System;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class HealthStatusResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'ok' => $this->resource['ok'] ?? false,
'paths' => $this->resource['paths'] ?? [],
'database' => $this->resource['database'] ?? [],
'write_path' => $this->resource['write_path'] ?? null,
'timestamp' => $this->resource['timestamp'] ?? null,
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Resources\System;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class NavBuilderDataResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'items' => $this->resource['items'] ?? [],
'roles' => $this->resource['roles'] ?? [],
'parentOptions' => $this->resource['parentOptions'] ?? [],
];
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources\System;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class NavItemResource extends JsonResource
{
public function toArray(Request $request): array
{
$item = is_array($this->resource) ? $this->resource : $this->resource->toArray();
return [
'id' => (int) ($item['id'] ?? 0),
'menu_parent_id' => $item['menu_parent_id'] ?? null,
'label' => (string) ($item['label'] ?? ''),
'url' => $item['url'] ?? null,
'icon_class' => $item['icon_class'] ?? null,
'target' => $item['target'] ?? null,
'sort_order' => (int) ($item['sort_order'] ?? 0),
'is_enabled' => (int) ($item['is_enabled'] ?? 0),
'children' => !empty($item['children'])
? NavItemResource::collection($item['children'])
: [],
];
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Resources\Ui;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UiStyleResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'style_color' => $this->style_color ?? null,
'menu_color' => $this->menu_color ?? null,
'menu_custom_bg' => $this->menu_custom_bg ?? null,
'menu_custom_text' => $this->menu_custom_text ?? null,
'menu_custom_mode' => $this->menu_custom_mode ?? null,
];
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Resources\Utilities;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class PhoneFormatResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'raw' => $this->resource['raw'] ?? null,
'formatted' => $this->resource['formatted'] ?? null,
'is_valid' => $this->resource['is_valid'] ?? false,
];
}
}