feat: govern autonomous campaign delivery schedules

This commit is contained in:
2026-08-20 21:10:11 +02:00
parent c846c249b8
commit 2a00d910df
14 changed files with 1251 additions and 65 deletions
+10 -1
View File
@@ -138,10 +138,15 @@ export type CampaignScheduleOccurrence = {
id: string;
schedule_id: string;
scheduled_for: string;
status: "prepared" | "failed" | string;
status: "prepared" | "accepted" | "uncertain" | "failed" | "skipped" | "superseded" | string;
idempotency_key?: string | null;
generated_campaign_id?: string | null;
generated_version_id?: string | null;
error?: string | null;
delivery_command_ids: string[];
recovery_state: string;
evidence: Record<string, unknown>;
last_checked_at?: string | null;
created_at: string;
};
@@ -150,6 +155,7 @@ export type CampaignSchedule = {
campaign_id: string;
source_version_id: string;
name: string;
delivery_mode: "manual" | "autonomous";
recurrence_kind: "once" | "daily" | "weekly" | "monthly";
interval_count: number;
timezone: string;
@@ -163,6 +169,8 @@ export type CampaignSchedule = {
last_fired_at?: string | null;
last_campaign_id?: string | null;
last_error?: string | null;
last_outcome?: string | null;
last_recovery_state?: string | null;
created_at: string;
updated_at: string;
occurrences: CampaignScheduleOccurrence[];
@@ -171,6 +179,7 @@ export type CampaignSchedule = {
export type CampaignScheduleCreate = {
source_version_id: string;
name: string;
delivery_mode: CampaignSchedule["delivery_mode"];
recurrence_kind: CampaignSchedule["recurrence_kind"];
interval_count: number;
timezone: string;