This commit is contained in:
F4ilji
2026-04-07 17:54:26 +05:00
parent 04adba6682
commit 936b1fb5b0
468 changed files with 43498 additions and 4176 deletions
@@ -0,0 +1,13 @@
<?php
namespace App\Containers\Dashboard\Actions\AdmissionPlans;
use App\Containers\Education\Models\AdmissionPlan;
class CreateAdmissionPlanAction
{
public function run(array $data): AdmissionPlan
{
return AdmissionPlan::create($data);
}
}
@@ -0,0 +1,13 @@
<?php
namespace App\Containers\Dashboard\Actions\AdmissionPlans;
use App\Containers\Education\Models\AdmissionPlan;
class DeleteAdmissionPlanAction
{
public function run(AdmissionPlan $plan): bool
{
return $plan->delete();
}
}
@@ -0,0 +1,38 @@
<?php
namespace App\Containers\Dashboard\Actions\AdmissionPlans;
use App\Containers\Education\Models\AdmissionPlan;
use App\Containers\Education\Models\AdmissionCampaign;
use App\Containers\Education\Models\EducationalProgram;
use App\Ship\Enums\Education\EducationalProgramStatus;
class ListAdmissionPlansAction
{
public function run(array $filters = []): array
{
$query = AdmissionPlan::with(['educationalProgram', 'admissionCampaign']);
// Фильтр по приемной кампании
if (!empty($filters['admission_campaigns_id'])) {
$query->where('admission_campaigns_id', $filters['admission_campaigns_id']);
}
// Фильтр по образовательной программе
if (!empty($filters['educational_programs_id'])) {
$query->where('educational_programs_id', $filters['educational_programs_id']);
}
$plans = $query->orderBy('id', 'desc')->paginate(20)->withQueryString();
return [
'plans' => $plans,
'filters' => $filters,
'admissionCampaigns' => AdmissionCampaign::orderBy('name')->get(['id', 'name', 'academic_year']),
'educationalPrograms' => EducationalProgram::whereIn('status', [
EducationalProgramStatus::PUBLISHED,
EducationalProgramStatus::IN_PROGRESS
])->orderBy('name')->get(['id', 'name']),
];
}
}
@@ -0,0 +1,14 @@
<?php
namespace App\Containers\Dashboard\Actions\AdmissionPlans;
use App\Containers\Education\Models\AdmissionPlan;
class UpdateAdmissionPlanAction
{
public function run(AdmissionPlan $plan, array $data): AdmissionPlan
{
$plan->update($data);
return $plan;
}
}