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
@@ -0,0 +1,32 @@
<?php
namespace App\Containers\AdditionalEducation\Models;
use App\Ship\Enums\Education\FormEducation;
use App\Ship\Models\Model;
use App\Ship\Models\Seo;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphOne;
class AdditionalEducation extends Model
{
use HasFactory;
protected $guarded = false;
protected $casts = [
'content' => 'array',
'form_education' => FormEducation::class,
];
public function category(): BelongsTo
{
return $this->belongsTo(AdditionalEducationCategory::class, 'category_id', 'id');
}
public function seo(): MorphOne
{
return $this->morphOne(Seo::class, 'seoable');
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Containers\AdditionalEducation\Models;
use App\Ship\Models\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class AdditionalEducationCategory extends Model
{
use HasFactory;
protected $guarded = false;
public function scopeWithActivePrograms(Builder $query): Builder
{
return $query->with(['additionalEducations' => function ($query) {
$query->where('is_active', true);
}]);
}
public function additionalEducations(): HasMany
{
return $this->hasMany(AdditionalEducation::class, 'category_id', 'id');
}
public function direction(): BelongsTo
{
return $this->belongsTo(DirectionAdditionalEducation::class, 'dir_addit_educat_id', 'id');
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Containers\AdditionalEducation\Models;
use App\Ship\Models\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
class DirectionAdditionalEducation extends Model
{
use HasFactory;
protected $guarded = false;
public function additionalEducationCategories(): HasMany
{
return $this->hasMany(AdditionalEducationCategory::class, 'dir_addit_educat_id', 'id');
}
}