update project
This commit is contained in:
@@ -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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user