inti project
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user