feat: due resolution and cascade math

Also: StoresUtc trait normalizes datetime casts to UTC (controller ruling).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCrwHHnGCB5XH968Nxokqw
This commit is contained in:
nikita.hohlov
2026-09-04 06:19:00 -03:00
parent 774e0bce1a
commit e48e48aa4a
9 changed files with 297 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Scheduling;
use Carbon\CarbonImmutable;
/** Срок события, приведённый к поясу пользователя. */
final class Due
{
public function __construct(
/** Локальная полночь дня срока. */
public readonly CarbonImmutable $day,
/** Момент срока. Для события «весь день» — следующая полночь. */
public readonly CarbonImmutable $moment,
) {}
}