update project
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->app->register(SchoolContextServiceProvider::class);
|
||||
$this->app->register(SchoolCoreAttendanceServiceProvider::class);
|
||||
$this->app->register(SchoolCoreFinanceServiceProvider::class);
|
||||
$this->app->register(SchoolCoreStudentServiceProvider::class);
|
||||
$this->app->register(SchoolCoreCommunicationServiceProvider::class);
|
||||
$this->app->register(SchoolCoreReportingServiceProvider::class);
|
||||
$this->app->register(IslamicSundaySchoolServiceProvider::class);
|
||||
}
|
||||
|
||||
public function boot(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Domain\IslamicSundaySchool\Attendance\IslamicSundaySchoolAttendancePolicy;
|
||||
use App\Domain\IslamicSundaySchool\Policies\IslamicSundaySchoolPaymentAllocationPolicy;
|
||||
use App\Domain\IslamicSundaySchool\Providers\IslamicSundaySchoolCalendarProvider;
|
||||
use App\Domain\SchoolCore\Contracts\AcademicCalendarProviderContract;
|
||||
use App\Domain\SchoolCore\Contracts\AttendancePolicyContract;
|
||||
use App\Domain\SchoolCore\Contracts\PaymentAllocationPolicyContract;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
final class IslamicSundaySchoolServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
if (! (bool) config('school_context.extensions.islamic_sunday_school.enabled', false)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->app->bind(AttendancePolicyContract::class, IslamicSundaySchoolAttendancePolicy::class);
|
||||
$this->app->bind(AcademicCalendarProviderContract::class, IslamicSundaySchoolCalendarProvider::class);
|
||||
$this->app->bind(PaymentAllocationPolicyContract::class, IslamicSundaySchoolPaymentAllocationPolicy::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContextFactory;
|
||||
use App\Domain\SchoolCore\Context\SchoolContextResolver;
|
||||
use App\Domain\SchoolCore\Context\SchoolContextStore;
|
||||
use App\Domain\SchoolCore\Context\SchoolContextValidator;
|
||||
use App\Http\Middleware\ResolveSchoolContext;
|
||||
use Illuminate\Contracts\Http\Kernel;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
final class SchoolContextServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->mergeConfigFrom(__DIR__ . '/../../config/school_context.php', 'school_context');
|
||||
|
||||
$this->app->singleton(SchoolContextStore::class);
|
||||
$this->app->bind(SchoolContextFactory::class);
|
||||
$this->app->bind(SchoolContextResolver::class);
|
||||
$this->app->bind(SchoolContextValidator::class);
|
||||
}
|
||||
|
||||
public function boot(Kernel $kernel): void
|
||||
{
|
||||
$this->publishes([
|
||||
__DIR__ . '/../../config/school_context.php' => config_path('school_context.php'),
|
||||
], 'school-context-config');
|
||||
|
||||
// Laravel 10/older: also register alias in app/Http/Kernel.php if preferred.
|
||||
app('router')->aliasMiddleware('school.context', ResolveSchoolContext::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendanceAuditLoggerContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendanceIdempotencyServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendancePolicyContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendanceServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendanceSessionResolverContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\AttendanceStatusPolicyContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\BadgeLookupServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\ScannerServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\StaffAttendanceServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Contracts\StudentAttendanceServiceContract;
|
||||
use App\Domain\SchoolCore\Attendance\Policies\DefaultAttendancePolicy;
|
||||
use App\Domain\SchoolCore\Attendance\Policies\DefaultAttendanceStatusPolicy;
|
||||
use App\Domain\SchoolCore\Attendance\Services\AttendanceAuditLogger;
|
||||
use App\Domain\SchoolCore\Attendance\Services\AttendanceIdempotencyService;
|
||||
use App\Domain\SchoolCore\Attendance\Services\AttendanceService;
|
||||
use App\Domain\SchoolCore\Attendance\Services\AttendanceSessionResolver;
|
||||
use App\Domain\SchoolCore\Attendance\Services\BadgeLookupService;
|
||||
use App\Domain\SchoolCore\Attendance\Services\ScannerService;
|
||||
use App\Domain\SchoolCore\Attendance\Services\StaffAttendanceService;
|
||||
use App\Domain\SchoolCore\Attendance\Services\StudentAttendanceService;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
final class SchoolCoreAttendanceServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->app->bind(ScannerServiceContract::class, ScannerService::class);
|
||||
$this->app->bind(AttendanceServiceContract::class, AttendanceService::class);
|
||||
$this->app->bind(BadgeLookupServiceContract::class, BadgeLookupService::class);
|
||||
$this->app->bind(StudentAttendanceServiceContract::class, StudentAttendanceService::class);
|
||||
$this->app->bind(StaffAttendanceServiceContract::class, StaffAttendanceService::class);
|
||||
$this->app->bind(AttendanceSessionResolverContract::class, AttendanceSessionResolver::class);
|
||||
$this->app->bind(AttendanceStatusPolicyContract::class, DefaultAttendanceStatusPolicy::class);
|
||||
$this->app->bind(AttendancePolicyContract::class, DefaultAttendancePolicy::class);
|
||||
$this->app->bind(AttendanceAuditLoggerContract::class, AttendanceAuditLogger::class);
|
||||
$this->app->bind(AttendanceIdempotencyServiceContract::class, AttendanceIdempotencyService::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Providers;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use App\Domain\SchoolCore\Communication\Contracts\{CommunicationServiceContract,RecipientPreviewServiceContract,RecipientDedupeServiceContract,CommunicationPreferencePolicyContract,ChannelRouterContract,EmailChannelContract,SmsChannelContract,WhatsAppChannelContract,NotificationChannelContract,MessageTemplateServiceContract,DeliveryStatusServiceContract,CommunicationAuditLoggerContract,CommunicationIdempotencyServiceContract};
|
||||
use App\Domain\SchoolCore\Communication\Services\{CommunicationService,RecipientPreviewService,RecipientDedupeService,ChannelRouter,MessageTemplateService,DeliveryStatusService,CommunicationAuditLogger,CommunicationIdempotencyService};
|
||||
use App\Domain\SchoolCore\Communication\Policies\DefaultCommunicationPreferencePolicy;
|
||||
use App\Domain\SchoolCore\Communication\Channels\{EmailChannel,SmsChannel,WhatsAppChannel,NotificationChannel};
|
||||
use App\Domain\SchoolCore\Communication\Resolvers\{StudentRecipientResolver,GuardianRecipientResolver,StaffRecipientResolver,ClassRecipientResolver,SchoolWideRecipientResolver};
|
||||
final class SchoolCoreCommunicationServiceProvider extends ServiceProvider { public function register(): void { $this->app->bind(CommunicationServiceContract::class, CommunicationService::class); $this->app->bind(RecipientPreviewServiceContract::class, RecipientPreviewService::class); $this->app->bind(RecipientDedupeServiceContract::class, RecipientDedupeService::class); $this->app->bind(CommunicationPreferencePolicyContract::class, DefaultCommunicationPreferencePolicy::class); $this->app->bind(ChannelRouterContract::class, ChannelRouter::class); $this->app->bind(EmailChannelContract::class, EmailChannel::class); $this->app->bind(SmsChannelContract::class, SmsChannel::class); $this->app->bind(WhatsAppChannelContract::class, WhatsAppChannel::class); $this->app->bind(NotificationChannelContract::class, NotificationChannel::class); $this->app->bind(MessageTemplateServiceContract::class, MessageTemplateService::class); $this->app->bind(DeliveryStatusServiceContract::class, DeliveryStatusService::class); $this->app->bind(CommunicationAuditLoggerContract::class, CommunicationAuditLogger::class); $this->app->bind(CommunicationIdempotencyServiceContract::class, CommunicationIdempotencyService::class); $this->app->tag([StudentRecipientResolver::class,GuardianRecipientResolver::class,StaffRecipientResolver::class,ClassRecipientResolver::class,SchoolWideRecipientResolver::class], 'communication.recipient_resolvers'); $this->app->when(RecipientPreviewService::class)->needs('$resolvers')->giveTagged('communication.recipient_resolvers'); } }
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Domain\SchoolCore\Finance\Contracts\ChargeServiceContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\FinanceAuditLoggerContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\FinanceFileServiceContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\InvoiceServiceContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\PaymentAllocationPolicyContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\PaymentServiceContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\RefundServiceContract;
|
||||
use App\Domain\SchoolCore\Finance\Contracts\TuitionPolicyContract;
|
||||
use App\Domain\SchoolCore\Finance\Policies\DefaultPaymentAllocationPolicy;
|
||||
use App\Domain\SchoolCore\Finance\Policies\DefaultTuitionPolicy;
|
||||
use App\Domain\SchoolCore\Finance\Services\ChargeService;
|
||||
use App\Domain\SchoolCore\Finance\Services\FinanceAuditLogger;
|
||||
use App\Domain\SchoolCore\Finance\Services\InvoiceService;
|
||||
use App\Domain\SchoolCore\Finance\Services\PaymentFileService;
|
||||
use App\Domain\SchoolCore\Finance\Services\PaymentService;
|
||||
use App\Domain\SchoolCore\Finance\Services\RefundService;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
final class SchoolCoreFinanceServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->app->bind(PaymentServiceContract::class, PaymentService::class);
|
||||
$this->app->bind(InvoiceServiceContract::class, InvoiceService::class);
|
||||
$this->app->bind(RefundServiceContract::class, RefundService::class);
|
||||
$this->app->bind(ChargeServiceContract::class, ChargeService::class);
|
||||
$this->app->bind(FinanceFileServiceContract::class, PaymentFileService::class);
|
||||
$this->app->bind(FinanceAuditLoggerContract::class, FinanceAuditLogger::class);
|
||||
$this->app->bind(PaymentAllocationPolicyContract::class, DefaultPaymentAllocationPolicy::class);
|
||||
$this->app->bind(TuitionPolicyContract::class, DefaultTuitionPolicy::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php declare(strict_types=1);
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportRegistryContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportRunnerContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportAuthorizationPolicyContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportExportServiceContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportSnapshotServiceContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ScheduledReportServiceContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportAuditLoggerContract;
|
||||
use App\Domain\SchoolCore\Reporting\Contracts\ReportCacheServiceContract;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportRegistry;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportRunner;
|
||||
use App\Domain\SchoolCore\Reporting\Services\DefaultReportAuthorizationPolicy;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportExportService;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportSnapshotService;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ScheduledReportService;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportAuditLogger;
|
||||
use App\Domain\SchoolCore\Reporting\Services\ReportCacheService;
|
||||
use App\Domain\SchoolCore\Reporting\Reports\Students\{StudentRosterReport,StudentEnrollmentReport,GuardianContactReport};
|
||||
use App\Domain\SchoolCore\Reporting\Reports\Attendance\{AttendanceSummaryReport,StudentAttendanceHistoryReport,StaffAttendanceSummaryReport};
|
||||
use App\Domain\SchoolCore\Reporting\Reports\Finance\{InvoiceSummaryReport,OutstandingBalanceReport,PaymentSummaryReport};
|
||||
use App\Domain\SchoolCore\Reporting\Reports\Communication\{MessageDeliveryReport,RecipientEngagementReport};
|
||||
|
||||
final class SchoolCoreReportingServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register(): void
|
||||
{
|
||||
$this->app->singleton(ReportRegistryContract::class, function ($app) {
|
||||
$registry = new ReportRegistry();
|
||||
foreach ($app->tagged('schoolcore.reports') as $report) { $registry->register($report); }
|
||||
return $registry;
|
||||
});
|
||||
$this->app->bind(ReportRunnerContract::class, ReportRunner::class);
|
||||
$this->app->bind(ReportAuthorizationPolicyContract::class, DefaultReportAuthorizationPolicy::class);
|
||||
$this->app->bind(ReportExportServiceContract::class, ReportExportService::class);
|
||||
$this->app->bind(ReportSnapshotServiceContract::class, ReportSnapshotService::class);
|
||||
$this->app->bind(ScheduledReportServiceContract::class, ScheduledReportService::class);
|
||||
$this->app->bind(ReportAuditLoggerContract::class, ReportAuditLogger::class);
|
||||
$this->app->bind(ReportCacheServiceContract::class, ReportCacheService::class);
|
||||
|
||||
$this->app->tag([
|
||||
StudentRosterReport::class,
|
||||
StudentEnrollmentReport::class,
|
||||
GuardianContactReport::class,
|
||||
AttendanceSummaryReport::class,
|
||||
StudentAttendanceHistoryReport::class,
|
||||
StaffAttendanceSummaryReport::class,
|
||||
InvoiceSummaryReport::class,
|
||||
OutstandingBalanceReport::class,
|
||||
PaymentSummaryReport::class,
|
||||
MessageDeliveryReport::class,
|
||||
RecipientEngagementReport::class,
|
||||
], 'schoolcore.reports');
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
namespace App\Providers;
|
||||
use App\Domain\SchoolCore\Students\Contracts\AssignmentServiceContract; use App\Domain\SchoolCore\Students\Contracts\EnrollmentServiceContract; use App\Domain\SchoolCore\Students\Contracts\GuardianServiceContract; use App\Domain\SchoolCore\Students\Contracts\HouseholdServiceContract; use App\Domain\SchoolCore\Students\Contracts\PromotionPolicyContract; use App\Domain\SchoolCore\Students\Contracts\PromotionServiceContract; use App\Domain\SchoolCore\Students\Contracts\StudentIdentifierGeneratorContract; use App\Domain\SchoolCore\Students\Contracts\StudentLifecycleAuditLoggerContract; use App\Domain\SchoolCore\Students\Contracts\StudentProfileServiceContract; use App\Domain\SchoolCore\Students\Contracts\StudentReadServiceContract; use App\Domain\SchoolCore\Students\Contracts\StudentServiceContract; use App\Domain\SchoolCore\Students\Policies\DefaultPromotionPolicy; use App\Domain\SchoolCore\Students\Policies\DefaultStudentIdentifierGenerator; use App\Domain\SchoolCore\Students\Services\AssignmentService; use App\Domain\SchoolCore\Students\Services\EnrollmentService; use App\Domain\SchoolCore\Students\Services\GuardianService; use App\Domain\SchoolCore\Students\Services\HouseholdService; use App\Domain\SchoolCore\Students\Services\PromotionService; use App\Domain\SchoolCore\Students\Services\StudentLifecycleAuditLogger; use App\Domain\SchoolCore\Students\Services\StudentProfileService; use App\Domain\SchoolCore\Students\Services\StudentReadService; use App\Domain\SchoolCore\Students\Services\StudentService; use Illuminate\Support\ServiceProvider;
|
||||
final class SchoolCoreStudentServiceProvider extends ServiceProvider { public function register(): void { $this->app->bind(StudentServiceContract::class,StudentService::class); $this->app->bind(StudentProfileServiceContract::class,StudentProfileService::class); $this->app->bind(StudentIdentifierGeneratorContract::class,DefaultStudentIdentifierGenerator::class); $this->app->bind(GuardianServiceContract::class,GuardianService::class); $this->app->bind(HouseholdServiceContract::class,HouseholdService::class); $this->app->bind(EnrollmentServiceContract::class,EnrollmentService::class); $this->app->bind(AssignmentServiceContract::class,AssignmentService::class); $this->app->bind(PromotionServiceContract::class,PromotionService::class); $this->app->bind(PromotionPolicyContract::class,DefaultPromotionPolicy::class); $this->app->bind(StudentLifecycleAuditLoggerContract::class,StudentLifecycleAuditLogger::class); $this->app->bind(StudentReadServiceContract::class,StudentReadService::class); } }
|
||||
Reference in New Issue
Block a user