namespace EntitlementBLL.Handlers;
///
/// Track A cutover (tracker §45) — the business logic that used to live inside three
/// standalone Quartz IJob classes (KillSwitchMonitorJob, FeatureFlagSchedulerJob,
/// PayOrderReconciliationJob), each with its own AddQuartz/AddTrigger registration in
/// EntitlementSL/Program.cs. Moved here, unchanged, so a plain HTTP endpoint (dispatched by
/// GB5Framework's MJOBDEFINE/TSCHEDULER "Track A" scheduler instead of a per-module in-memory
/// Quartz instance) can call the exact same logic. The three original job classes and their
/// Quartz registrations are deleted, not just superseded — this IS the new implementation now.
///
public interface ISchedulerTasksBLL
{
/// Alerts when a kill switch has been active for more than 48h — a stale kill
/// switch usually means a fix shipped but nobody lifted the switch. Was every 10 minutes.
Task RunKillSwitchMonitorAsync(CancellationToken ct);
/// Applies MENTITLEMENTFEATUREFLAG.SCHEDULEDOFFON/SCHEDULEDOFFOFF transitions that
/// have come due. Was every 5 minutes.
Task RunFeatureFlagSchedulerAsync(CancellationToken ct);
/// Entitlement↔Payment loose-coupling reconciliation backstop (§9.1 item 4) — scans
/// every subscription still Pending with a real outstanding PayOrderId, checks PAY's live
/// order status, self-corrects via the same ISubscriptionService.HandlePaymentOutcomeAsync
/// the Dapr subscriber calls. Was every 15 minutes.
Task RunPayOrderReconciliationAsync(CancellationToken ct);
}