Migrate backend to Porto architecture and fix minor bugs

- Fully transitioned the backend to the Porto architectural pattern
- Improved code organization and maintainability
- Fixed minor bugs and inconsistencies
This commit is contained in:
F4ilji
2025-05-12 08:47:43 +05:00
parent 76deaf75f3
commit c01016a154
620 changed files with 16218 additions and 6073 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\AcademicJournal;
use App\Containers\Science\Models\AcademicJournal;
use App\Services\App\Cache\AcademicJournalCacheService;
class AcademicJournalObserver
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\AdditionalEducation;
use App\Containers\AdditionalEducation\Models\AdditionalEducation;
use App\Services\App\Cache\AdditionalEducationCacheService;
class AdditionalEducationObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Category;
use App\Containers\Article\Models\Category;
use App\Services\App\Cache\CategoryCacheService;
class CategoryObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\ContactWidget;
use App\Containers\Widget\Models\ContactWidget;
use App\Services\App\Cache\ContactWidgetCacheService;
class ContactWidgetObserver
+1 -3
View File
@@ -2,10 +2,8 @@
namespace App\Observers;
use App\Containers\Widget\Models\CustomFormResponse;
use App\Jobs\SendFormResponseMail;
use App\Mail\CustomFormResponseMail;
use App\Models\CustomFormResponse;
use Illuminate\Support\Facades\Mail;
class CustomFormResponseObserver
{
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Department;
use App\Containers\InstituteStructure\Models\Department;
use App\Services\App\Cache\DepartmentCacheService;
class DepartmentObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Division;
use App\Containers\InstituteStructure\Models\Division;
use App\Services\App\Cache\DivisionCacheService;
class DivisionObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\EducationalProgram;
use App\Containers\Education\Models\EducationalProgram;
use App\Services\App\Cache\EducationalProgramCacheService;
class EducationalProgramObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Event;
use App\Containers\Event\Models\Event;
use App\Services\App\Cache\EventCacheService;
class EventObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Faculty;
use App\Containers\InstituteStructure\Models\Faculty;
use App\Services\App\Cache\FacultyCacheService;
class FacultyObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\MainSection;
use App\Containers\AppStructure\Models\MainSection;
use Illuminate\Support\Facades\Cache;
class MainSectionObserver
-78
View File
@@ -1,78 +0,0 @@
<?php
namespace App\Observers;
use App\Models\MainSlider;
use App\Services\App\Cache\MainSliderCacheService;
class MainSliderObserver
{
protected MainSliderCacheService $cacheService;
public function __construct()
{
$this->cacheService = new MainSliderCacheService();
}
/**
* Handle the MainSlider "created" event.
*/
public function created(MainSlider $mainSlider): void
{
// Устанавливаем сортировку для новой записи
$mainSlider->sort = 1;
$mainSlider->save();
// Обновляем сортировку для всех остальных записей
$this->updateSortOrder($mainSlider->id);
$this->cacheService->clearAllCacheByModel();
}
/**
* Handle the MainSlider "updated" event.
*/
public function updated(MainSlider $mainSlider): void
{
$this->cacheService->clearAllCacheByModel();
}
/**
* Handle the MainSlider "deleted" event.
*/
public function deleted(MainSlider $mainSlider): void
{
$this->cacheService->clearAllCacheByModel();
}
/**
* Handle the MainSlider "restored" event.
*/
public function restored(MainSlider $mainSlider): void
{
//
}
/**
* Handle the MainSlider "force deleted" event.
*/
public function forceDeleted(MainSlider $mainSlider): void
{
//
}
protected function updateSortOrder($id): void
{
// Получаем все записи, отсортированные по текущему значению sort
$slides = MainSlider::orderBy('sort', 'asc')->where('id', '!=', $id)->get();
if ($slides->count() > 0) {
foreach ($slides as $index => $slide) {
$slide->sort = $index + 2; // Начинаем с 1
$slide->save();
}
}
}
}
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Page;
use App\Containers\AppStructure\Models\Page;
use App\Services\App\Cache\PageCacheService;
use Illuminate\Support\Facades\Cache;
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\PageReferenceList;
use App\Containers\Widget\Models\PageReferenceList;
use App\Services\App\Cache\PageReferenceListCacheService;
class PageReferenceListObserver
+1 -4
View File
@@ -2,11 +2,8 @@
namespace App\Observers;
use App\Models\Post;
use App\Containers\Article\Models\Post;
use App\Services\App\Cache\PostCacheService;
use Filament\Notifications\Notification;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Redirect;
class PostObserver
{
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Schedule;
use App\Containers\Schedule\Models\Schedule;
use App\Services\App\Cache\ScheduleCacheService;
class ScheduleObserver
+1 -3
View File
@@ -2,9 +2,7 @@
namespace App\Observers;
use App\Models\MainSlider;
use App\Models\Slide;
use App\Services\App\Cache\MainSliderCacheService;
use App\Containers\Widget\Models\Slide;
use App\Services\App\Cache\SliderCacheService;
class SlideObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\SubSection;
use App\Containers\AppStructure\Models\SubSection;
use Illuminate\Support\Facades\Cache;
class SubSectionObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\Tag;
use App\Containers\Article\Models\Tag;
use App\Services\App\Cache\TagCacheService;
class TagObserver
+1 -1
View File
@@ -2,7 +2,7 @@
namespace App\Observers;
use App\Models\User;
use App\Containers\User\Models\User;
use App\Services\App\Cache\UserCacheService;
class UserObserver