feat: state, window and quiet rules

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:39:23 -03:00
parent e48e48aa4a
commit c2fa8aa00d
8 changed files with 420 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Scheduling;
use Carbon\CarbonImmutable;
/** Окно доставки: внутри него ядро ищет момент, когда пользователь доступен. */
final class Window
{
public function __construct(
public readonly CarbonImmutable $start,
public readonly CarbonImmutable $end,
/** Разрешена ли доставка «во все каналы наугад», если никто не present. */
public readonly bool $fallbackAllowed,
/** С какого момента fallback срабатывает (конец окна минус запас). */
public readonly CarbonImmutable $fallbackAt,
) {}
}