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:
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums;
|
||||
|
||||
enum CacheKeys: string {
|
||||
case USER_PREFIX = 'person_';
|
||||
case POST_PREFIX = 'post_';
|
||||
case RECENT_POSTS_PREFIX = 'recent_posts_';
|
||||
case POSTS_PREFIX = 'posts_';
|
||||
case EDUCATION_PROGRAM_PREFIX = 'education_program_';
|
||||
case ADMISSION_CAMPAIGNS_PREFIX = 'admission_campaigns_';
|
||||
case DIRECTION_STUDIES = 'direction_studies_';
|
||||
case ADMISSION_PLANS = 'admission_plans_';
|
||||
case EDUCATION_PROGRAMS_PREFIX = 'education_programs_';
|
||||
case ADDITIONAL_EDUCATIONAL_PROGRAM_PREFIX = 'additional_education_program_';
|
||||
case ADDITIONAL_EDUCATIONAL_PROGRAMS_PREFIX = 'additional_education_programs_';
|
||||
case ACADEMIC_JOURNAL_PREFIX = 'academic_journal_';
|
||||
case ACADEMIC_JOURNALS_PREFIX = 'academic_journals_';
|
||||
case CATEGORIES_PREFIX = 'categories_';
|
||||
case CONTACT_WIDGET_PREFIX = 'contact_widget_';
|
||||
case CONTACT_WIDGETS_PREFIX = 'contact_widgets_';
|
||||
// Department
|
||||
case DEPARTMENT_PREFIX = 'department_';
|
||||
case DEPARTMENTS_PREFIX = 'departments_';
|
||||
|
||||
// Division
|
||||
case DIVISION_PREFIX = 'division_';
|
||||
case DIVISIONS_PREFIX = 'divisions_';
|
||||
|
||||
// Event
|
||||
case EVENT_PREFIX = 'event_';
|
||||
case EVENTS_PREFIX = 'events_';
|
||||
|
||||
// Faculty
|
||||
case FACULTY_PREFIX = 'faculty_';
|
||||
case FACULTIES_PREFIX = 'faculties_';
|
||||
|
||||
// Navigation
|
||||
case NAVIGATION_PREFIX = 'navigation';
|
||||
|
||||
// Page
|
||||
case PAGE_PREFIX = 'page_';
|
||||
case PAGE_DATA_PREFIX = 'page_data_';
|
||||
case PAGE_REFERENCE_LIST_PREFIX = 'page_reference_list_';
|
||||
case PAGE_REFERENCE_LISTS_PREFIX = 'page_reference_lists_';
|
||||
|
||||
// Schedule
|
||||
case SCHEDULE_PREFIX = 'schedule_';
|
||||
case SCHEDULES_PREFIX = 'schedules_';
|
||||
|
||||
// Slider
|
||||
case SLIDER_PREFIX = 'slider_';
|
||||
|
||||
// Tag
|
||||
case TAG_IDS_PREFIX = 'tag_ids_';
|
||||
case TAGS_PREFIX = 'tags_';
|
||||
case TAG_CONTENT_PREFIX = 'tag_content_';
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums\Education;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
use Filament\Support\Contracts\HasColor;
|
||||
|
||||
enum AdmissionCampaignStatus: int implements HasLabel, HasColor
|
||||
{
|
||||
case ACTIVE = 1;
|
||||
case ARCHIVED = 2;
|
||||
case HIDDEN = 3;
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::ACTIVE => 'Активная',
|
||||
self::ARCHIVED => 'Архивная',
|
||||
self::HIDDEN => 'Скрытая',
|
||||
};
|
||||
}
|
||||
|
||||
public function getColor(): string|array|null
|
||||
{
|
||||
return match ($this) {
|
||||
self::ACTIVE => 'success',
|
||||
self::ARCHIVED => 'gray',
|
||||
self::HIDDEN => 'danger',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums\Education;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
use Filament\Support\Contracts\HasColor;
|
||||
|
||||
enum BudgetEducation: int implements HasLabel, HasColor
|
||||
{
|
||||
case MAIN_QUOTA = 1;
|
||||
case TARGET_QUOTA = 2;
|
||||
case SPECIAL_QUOTA = 3;
|
||||
case PAID_EDUCATION = 4;
|
||||
case OTHER_SOURCES = 5;
|
||||
case SEPARATE_QUOTA = 6;
|
||||
case COMBINED_QUOTA_ALL = 7;
|
||||
case COMBINED_QUOTA_TARGET_SPECIAL = 8;
|
||||
case COMBINED_QUOTA_TARGET_SEPARATE = 9;
|
||||
case COMBINED_QUOTA_SPECIAL_SEPARATE = 10;
|
||||
case DETAILED_TARGET_QUOTA = 11;
|
||||
|
||||
public static function fromName(string $name): ?self {
|
||||
return match ($name) {
|
||||
'MAIN_QUOTA' => self::MAIN_QUOTA,
|
||||
'TARGET_QUOTA' => self::TARGET_QUOTA,
|
||||
'SPECIAL_QUOTA' => self::SPECIAL_QUOTA,
|
||||
'PAID_EDUCATION' => self::PAID_EDUCATION,
|
||||
'OTHER_SOURCES' => self::OTHER_SOURCES,
|
||||
'SEPARATE_QUOTA' => self::SEPARATE_QUOTA,
|
||||
'COMBINED_QUOTA_ALL' => self::COMBINED_QUOTA_ALL,
|
||||
'COMBINED_QUOTA_TARGET_SPECIAL' => self::COMBINED_QUOTA_TARGET_SPECIAL,
|
||||
'COMBINED_QUOTA_TARGET_SEPARATE' => self::COMBINED_QUOTA_TARGET_SEPARATE,
|
||||
'COMBINED_QUOTA_SPECIAL_SEPARATE' => self::COMBINED_QUOTA_SPECIAL_SEPARATE,
|
||||
'DETAILED_TARGET_QUOTA' => self::DETAILED_TARGET_QUOTA,
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::MAIN_QUOTA => 'Основные места',
|
||||
self::TARGET_QUOTA => 'Целевая квота',
|
||||
self::SPECIAL_QUOTA => 'Особая квота',
|
||||
self::PAID_EDUCATION => 'С оплатой обучения',
|
||||
self::OTHER_SOURCES => 'За счёт иных средств',
|
||||
self::SEPARATE_QUOTA => 'Отдельная квота',
|
||||
self::COMBINED_QUOTA_ALL => 'Совмещенная квота (целевая, особая и отдельная квоты)',
|
||||
self::COMBINED_QUOTA_TARGET_SPECIAL => 'Совмещенная квота (целевая и особая квоты)',
|
||||
self::COMBINED_QUOTA_TARGET_SEPARATE => 'Совмещенная квота (целевая и отдельная квоты)',
|
||||
self::COMBINED_QUOTA_SPECIAL_SEPARATE => 'Совмещенная квота (особая и отдельная квоты)',
|
||||
self::DETAILED_TARGET_QUOTA => 'Детализированная целевая квота',
|
||||
};
|
||||
}
|
||||
|
||||
public function getColor(): string|array|null
|
||||
{
|
||||
return match ($this) {
|
||||
self::MAIN_QUOTA => 'primary',
|
||||
self::TARGET_QUOTA => 'info',
|
||||
self::SPECIAL_QUOTA => 'danger',
|
||||
self::PAID_EDUCATION => 'warning',
|
||||
self::OTHER_SOURCES => 'gray',
|
||||
self::SEPARATE_QUOTA => 'success',
|
||||
self::COMBINED_QUOTA_ALL => 'indigo',
|
||||
self::COMBINED_QUOTA_TARGET_SPECIAL => 'violet',
|
||||
self::COMBINED_QUOTA_TARGET_SEPARATE => 'fuchsia',
|
||||
self::COMBINED_QUOTA_SPECIAL_SEPARATE => 'pink',
|
||||
self::DETAILED_TARGET_QUOTA => 'amber',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums\Education;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
use Filament\Support\Contracts\HasColor;
|
||||
|
||||
enum EducationalProgramStatus: int implements HasLabel, HasColor
|
||||
{
|
||||
case PUBLISHED = 1; // Опубликована. Отображается в публичной части сайта
|
||||
case IN_PROGRESS = 2; // На стадии заполнения. Отображается только в редакторе
|
||||
case ARCHIVED = 3; // Архивная. Отображается только в разделе Абитуриенту и в таблице сведений о трудоустройстве выпускников
|
||||
case REFERENCE = 4; // Справочная. Отображается только в разделе "Образование" и других
|
||||
case NOT_IMPLEMENTED = 5; // Не реализуется. Отображается только в справочнике образовательных программ
|
||||
case LICENSE_PENDING = 6; // Представлена к лицензированию. Отображается только в разделе "Образование"
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::PUBLISHED => 'Опубликована. Отображается в публичной части сайта',
|
||||
self::IN_PROGRESS => 'На стадии заполнения. Отображается только в редакторе',
|
||||
self::ARCHIVED => 'Архивная. Отображается только в разделе Абитуриенту и в таблице сведений о трудоустройстве выпускников',
|
||||
self::REFERENCE => 'Справочная. Отображается только в разделе "Образование" и других',
|
||||
self::NOT_IMPLEMENTED => 'Не реализуется. Отображается только в справочнике образовательных программ',
|
||||
self::LICENSE_PENDING => 'Представлена к лицензированию. Отображается только в разделе "Образование"',
|
||||
};
|
||||
}
|
||||
|
||||
public function getColor(): string|array|null
|
||||
{
|
||||
return match ($this) {
|
||||
self::PUBLISHED => 'success',
|
||||
self::IN_PROGRESS => 'warning',
|
||||
self::ARCHIVED => 'secondary',
|
||||
self::REFERENCE => 'info',
|
||||
self::NOT_IMPLEMENTED => 'danger',
|
||||
self::LICENSE_PENDING => 'primary',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums\Education;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
use Filament\Support\Contracts\HasColor;
|
||||
|
||||
enum FormEducation: int implements HasLabel, HasColor
|
||||
{
|
||||
case FULL_TIME = 1; // Очная форма обучения
|
||||
|
||||
case FULL_PART_TIME = 2; // Заочная форма обучения
|
||||
|
||||
case PART_TIME = 3; // Заочная форма обучения
|
||||
|
||||
|
||||
|
||||
public static function fromName(string $name): ?self {
|
||||
return match ($name) {
|
||||
'FULL_TIME' => self::FULL_TIME,
|
||||
'FULL_PART_TIME' => self::FULL_PART_TIME,
|
||||
'PART_TIME' => self::PART_TIME,
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::FULL_TIME => 'Очная форма обучения',
|
||||
self::FULL_PART_TIME => 'Очно-заочная форма обучения',
|
||||
self::PART_TIME => 'Заочная форма обучения',
|
||||
};
|
||||
}
|
||||
|
||||
public function getColor(): string|array|null
|
||||
{
|
||||
return match ($this) {
|
||||
self::FULL_TIME => 'success', // Цвет для очной формы
|
||||
self::PART_TIME => 'warning', // Цвет для заочной формы
|
||||
self::FULL_PART_TIME => 'info',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace App\Ship\Enums\Education;
|
||||
|
||||
use Filament\Support\Contracts\HasLabel;
|
||||
use Filament\Support\Contracts\HasColor;
|
||||
|
||||
enum LevelEducational: int implements HasLabel, HasColor
|
||||
{
|
||||
case PREPARATION_OF_QUALIFIED_WORKERS = 1; // Подготовка квалифицированных рабочих, служащих
|
||||
case MIDDLE_LEVEL_SPECIALIST_TRAINING = 2; // Программа подготовки специалистов среднего звена
|
||||
case BACHELOR = 3; // Бакалавриат
|
||||
case MASTER = 4; // Магистратура
|
||||
case SPECIALIST = 5; // Специалитет
|
||||
case POSTGRADUATE = 6; // Аспирантура
|
||||
case ADJUNCTURE = 7; // Адъюнктура
|
||||
case RESIDENCY = 8; // Ординатура
|
||||
case INTERNSHIP = 9; // Ассистентура - стажировка
|
||||
case PROFESSIONAL_TRAINING = 10; // Профессиональная подготовка по профессиям рабочих, должностям служащих
|
||||
case RETRAINING = 11; // Переподготовка рабочих, служащих
|
||||
case ADVANCED_TRAINING = 12; // Повышение квалификации рабочих, служащих
|
||||
case ADDITIONAL_GENERAL_DEVELOPMENT_PROGRAM = 13; // Дополнительная общеразвивающая программа
|
||||
case ADDITIONAL_PREPROFESSIONAL_PROGRAM = 14; // Дополнительная предпрофессиональная программа
|
||||
case ADDITIONAL_PREPROFESSIONAL_ART_PROGRAM = 15; // Дополнительная предпрофессиональная программа в сфере искусств
|
||||
case PROFESSIONAL_ADVANCEMENT = 16; // Повышение квалификации
|
||||
case PROFESSIONAL_RETRAINING = 17; // Профессиональная переподготовка
|
||||
case PRESCHOOL_EDUCATION = 18; // Дошкольное образование
|
||||
case PRIMARY_GENERAL_EDUCATION = 19; // Начальное общее образование
|
||||
case BASIC_GENERAL_EDUCATION = 20; // Основное общее образование
|
||||
case SECONDARY_GENERAL_EDUCATION = 21; // Среднее общее образование
|
||||
case INTERNSHIP_PROGRAM = 22; // Интернатура
|
||||
case ADDITIONAL_PREPROFESSIONAL_SPORT_PROGRAM = 23; // Дополнительная предпрофессиональная программа в сфере физической культуры и спорта
|
||||
case BASIC_HIGHER_EDUCATION = 24; // Базовое высшее образование
|
||||
case SPECIALIZED_HIGHER_EDUCATION = 25; // Специализированное высшее образование
|
||||
|
||||
|
||||
public static function fromName(string $name): ?self {
|
||||
return match ($name) {
|
||||
'PREPARATION_OF_QUALIFIED_WORKERS' => self::PREPARATION_OF_QUALIFIED_WORKERS,
|
||||
'MIDDLE_LEVEL_SPECIALIST_TRAINING' => self::MIDDLE_LEVEL_SPECIALIST_TRAINING,
|
||||
'BACHELOR' => self::BACHELOR,
|
||||
'MASTER' => self::MASTER,
|
||||
'SPECIALIST' => self::SPECIALIST,
|
||||
'POSTGRADUATE' => self::POSTGRADUATE,
|
||||
'ADJUNCTURE' => self::ADJUNCTURE,
|
||||
'RESIDENCY' => self::RESIDENCY,
|
||||
'INTERNSHIP' => self::INTERNSHIP,
|
||||
'PROFESSIONAL_TRAINING' => self::PROFESSIONAL_TRAINING,
|
||||
'RETRAINING' => self::RETRAINING,
|
||||
'ADVANCED_TRAINING' => self::ADVANCED_TRAINING,
|
||||
'ADDITIONAL_GENERAL_DEVELOPMENT_PROGRAM' => self::ADDITIONAL_GENERAL_DEVELOPMENT_PROGRAM,
|
||||
'ADDITIONAL_PREPROFESSIONAL_PROGRAM' => self::ADDITIONAL_PREPROFESSIONAL_PROGRAM,
|
||||
'ADDITIONAL_PREPROFESSIONAL_ART_PROGRAM' => self::ADDITIONAL_PREPROFESSIONAL_ART_PROGRAM,
|
||||
'PROFESSIONAL_ADVANCEMENT' => self::PROFESSIONAL_ADVANCEMENT,
|
||||
'PROFESSIONAL_RETRAINING' => self::PROFESSIONAL_RETRAINING,
|
||||
'PRESCHOOL_EDUCATION' => self::PRESCHOOL_EDUCATION,
|
||||
'PRIMARY_GENERAL_EDUCATION' => self::PRIMARY_GENERAL_EDUCATION,
|
||||
'BASIC_GENERAL_EDUCATION' => self::BASIC_GENERAL_EDUCATION,
|
||||
'SECONDARY_GENERAL_EDUCATION' => self::SECONDARY_GENERAL_EDUCATION,
|
||||
'INTERNSHIP_PROGRAM' => self::INTERNSHIP_PROGRAM,
|
||||
'ADDITIONAL_PREPROFESSIONAL_SPORT_PROGRAM' => self::ADDITIONAL_PREPROFESSIONAL_SPORT_PROGRAM,
|
||||
'BASIC_HIGHER_EDUCATION' => self::BASIC_HIGHER_EDUCATION,
|
||||
'SPECIALIZED_HIGHER_EDUCATION' => self::SPECIALIZED_HIGHER_EDUCATION,
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return match ($this) {
|
||||
self::PREPARATION_OF_QUALIFIED_WORKERS => 'Подготовка квалифицированных рабочих, служащих',
|
||||
self::MIDDLE_LEVEL_SPECIALIST_TRAINING => 'Среднее профессиональное образование',
|
||||
self::BACHELOR => 'Бакалавриат',
|
||||
self::MASTER => 'Магистратура',
|
||||
self::SPECIALIST => 'Специалитет',
|
||||
self::POSTGRADUATE => 'Аспирантура',
|
||||
self::ADJUNCTURE => 'Адъюнктура',
|
||||
self::RESIDENCY => 'Ординатура',
|
||||
self::INTERNSHIP => 'Ассистентура - стажировка',
|
||||
self::PROFESSIONAL_TRAINING => 'Профессиональная подготовка по профессиям рабочих, должностям служащих',
|
||||
self::RETRAINING => 'Переподготовка рабочих, служащих',
|
||||
self::ADVANCED_TRAINING => 'Повышение квалификации рабочих, служащих',
|
||||
self::ADDITIONAL_GENERAL_DEVELOPMENT_PROGRAM => 'Дополнительная общеразвивающая программа',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_PROGRAM => 'Дополнительная предпрофессиональная программа',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_ART_PROGRAM => 'Дополнительная предпрофессиональная программа в сфере искусств',
|
||||
self::PROFESSIONAL_ADVANCEMENT => 'Повышение квалификации',
|
||||
self::PROFESSIONAL_RETRAINING => 'Профессиональная переподготовка',
|
||||
self::PRESCHOOL_EDUCATION => 'Дошкольное образование',
|
||||
self::PRIMARY_GENERAL_EDUCATION => 'Начальное общее образование',
|
||||
self::BASIC_GENERAL_EDUCATION => 'Основное общее образование',
|
||||
self::SECONDARY_GENERAL_EDUCATION => 'Среднее общее образование',
|
||||
self::INTERNSHIP_PROGRAM => 'Интернатура',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_SPORT_PROGRAM => 'Дополнительная предпрофессиональная программа в сфере физической культуры и спорта',
|
||||
self::BASIC_HIGHER_EDUCATION => 'Базовое высшее образование',
|
||||
self::SPECIALIZED_HIGHER_EDUCATION => 'Специализированное высшее образование',
|
||||
};
|
||||
}
|
||||
|
||||
public function getColor(): string|array|null
|
||||
{
|
||||
return match ($this) {
|
||||
self::PREPARATION_OF_QUALIFIED_WORKERS => 'info',
|
||||
self::MIDDLE_LEVEL_SPECIALIST_TRAINING => 'primary',
|
||||
self::BACHELOR => 'success',
|
||||
self::MASTER => 'success',
|
||||
self::SPECIALIST => 'warning',
|
||||
self::POSTGRADUATE => 'warning',
|
||||
self::ADJUNCTURE => 'secondary',
|
||||
self::RESIDENCY => 'secondary',
|
||||
self::INTERNSHIP => 'light',
|
||||
self::PROFESSIONAL_TRAINING => 'info',
|
||||
self::RETRAINING => 'danger',
|
||||
self::ADVANCED_TRAINING => 'success',
|
||||
self::ADDITIONAL_GENERAL_DEVELOPMENT_PROGRAM => 'info',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_PROGRAM => 'info',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_ART_PROGRAM => 'info',
|
||||
self::PROFESSIONAL_ADVANCEMENT => 'success',
|
||||
self::PROFESSIONAL_RETRAINING => 'danger',
|
||||
self::PRESCHOOL_EDUCATION => 'success',
|
||||
self::PRIMARY_GENERAL_EDUCATION => 'success',
|
||||
self::BASIC_GENERAL_EDUCATION => 'success',
|
||||
self::SECONDARY_GENERAL_EDUCATION => 'success',
|
||||
self::INTERNSHIP_PROGRAM => 'light',
|
||||
self::ADDITIONAL_PREPROFESSIONAL_SPORT_PROGRAM => 'info',
|
||||
self::BASIC_HIGHER_EDUCATION => 'success',
|
||||
self::SPECIALIZED_HIGHER_EDUCATION => 'success',
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user