Files
laravel_school_api/app/Domain/IslamicSundaySchool/Attendance/IslamicSundaySchoolAttendancePolicy.php
T
2026-05-30 01:11:35 -04:00

33 lines
885 B
PHP

<?php
declare(strict_types=1);
namespace App\Domain\IslamicSundaySchool\Attendance;
use App\Domain\SchoolCore\Context\SchoolContext;
use App\Domain\SchoolCore\Contracts\AttendancePolicyContract;
use DateTimeInterface;
final class IslamicSundaySchoolAttendancePolicy implements AttendancePolicyContract
{
public function isSchoolDay(SchoolContext $context, DateTimeInterface $date): bool
{
return (int) $date->format('N') === 7;
}
public function determineStatus(SchoolContext $context, DateTimeInterface $scanTime, array $session): string
{
$startsAt = $session['starts_at'] ?? null;
if ($startsAt instanceof DateTimeInterface && $scanTime > $startsAt) {
return 'late';
}
return 'present';
}
public function duplicateScanWindowSeconds(SchoolContext $context): int
{
return 600;
}
}