update project

This commit is contained in:
root
2026-05-30 01:11:35 -04:00
parent 3a0628ecc7
commit 2225f6bc72
9743 changed files with 1122482 additions and 59 deletions
@@ -0,0 +1,68 @@
<?php
declare(strict_types=1);
namespace App\Providers;
use App\Domain\SchoolCore\Academics\Policies\DefaultGradeScalePolicy;
use App\Domain\SchoolCore\Academics\Policies\DefaultPromotionPolicy;
use App\Domain\SchoolCore\Attendance\Policies\StandardSchoolAttendancePolicy;
use App\Domain\SchoolCore\Attendance\Providers\StandardAcademicCalendarProvider;
use App\Domain\SchoolCore\Attendance\Services\AttendanceService;
use App\Domain\SchoolCore\Communication\Policies\DefaultCommunicationPreferencePolicy;
use App\Domain\SchoolCore\Communication\Services\CommunicationService;
use App\Domain\SchoolCore\Communication\Services\RecipientResolver;
use App\Domain\SchoolCore\Contracts\AcademicCalendarProviderContract;
use App\Domain\SchoolCore\Contracts\AttendancePolicyContract;
use App\Domain\SchoolCore\Contracts\AttendanceServiceContract;
use App\Domain\SchoolCore\Contracts\CommunicationPreferencePolicyContract;
use App\Domain\SchoolCore\Contracts\CommunicationServiceContract;
use App\Domain\SchoolCore\Contracts\EnrollmentServiceContract;
use App\Domain\SchoolCore\Contracts\FileAccessPolicyContract;
use App\Domain\SchoolCore\Contracts\FileStorageServiceContract;
use App\Domain\SchoolCore\Contracts\GradeScalePolicyContract;
use App\Domain\SchoolCore\Contracts\GuardianServiceContract;
use App\Domain\SchoolCore\Contracts\InvoiceServiceContract;
use App\Domain\SchoolCore\Contracts\PaymentAllocationPolicyContract;
use App\Domain\SchoolCore\Contracts\PaymentServiceContract;
use App\Domain\SchoolCore\Contracts\PromotionPolicyContract;
use App\Domain\SchoolCore\Contracts\RecipientResolverContract;
use App\Domain\SchoolCore\Contracts\ReportServiceContract;
use App\Domain\SchoolCore\Contracts\StudentIdentifierGeneratorContract;
use App\Domain\SchoolCore\Contracts\StudentServiceContract;
use App\Domain\SchoolCore\Enrollment\Services\EnrollmentService;
use App\Domain\SchoolCore\Files\Policies\PaymentFileAccessPolicy;
use App\Domain\SchoolCore\Files\Services\LaravelLocalFileStorageService;
use App\Domain\SchoolCore\Finance\Policies\DefaultPaymentAllocationPolicy;
use App\Domain\SchoolCore\Finance\Services\InvoiceService;
use App\Domain\SchoolCore\Finance\Services\PaymentService;
use App\Domain\SchoolCore\Guardians\Services\GuardianService;
use App\Domain\SchoolCore\Reporting\Services\ReportService;
use App\Domain\SchoolCore\Students\Services\SequentialStudentIdentifierGenerator;
use App\Domain\SchoolCore\Students\Services\StudentService;
use Illuminate\Support\ServiceProvider;
final class SchoolCoreServiceProvider extends ServiceProvider
{
public function register(): void
{
$this->app->bind(StudentServiceContract::class, StudentService::class);
$this->app->bind(StudentIdentifierGeneratorContract::class, SequentialStudentIdentifierGenerator::class);
$this->app->bind(GuardianServiceContract::class, GuardianService::class);
$this->app->bind(EnrollmentServiceContract::class, EnrollmentService::class);
$this->app->bind(AttendanceServiceContract::class, AttendanceService::class);
$this->app->bind(AttendancePolicyContract::class, StandardSchoolAttendancePolicy::class);
$this->app->bind(AcademicCalendarProviderContract::class, StandardAcademicCalendarProvider::class);
$this->app->bind(GradeScalePolicyContract::class, DefaultGradeScalePolicy::class);
$this->app->bind(PromotionPolicyContract::class, DefaultPromotionPolicy::class);
$this->app->bind(InvoiceServiceContract::class, InvoiceService::class);
$this->app->bind(PaymentServiceContract::class, PaymentService::class);
$this->app->bind(PaymentAllocationPolicyContract::class, DefaultPaymentAllocationPolicy::class);
$this->app->bind(FileAccessPolicyContract::class, PaymentFileAccessPolicy::class);
$this->app->bind(FileStorageServiceContract::class, LaravelLocalFileStorageService::class);
$this->app->bind(CommunicationServiceContract::class, CommunicationService::class);
$this->app->bind(RecipientResolverContract::class, RecipientResolver::class);
$this->app->bind(CommunicationPreferencePolicyContract::class, DefaultCommunicationPreferencePolicy::class);
$this->app->bind(ReportServiceContract::class, ReportService::class);
}
}