Files
laravel_school_api_old/app/Providers/SchoolCoreAttendanceServiceProvider.php
2026-05-29 04:33:03 -04:00

45 lines
2.6 KiB
PHP

<?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);
}
}