export const SCHEDULED_JOBS_QUEUE_NAME = 'scheduled-jobs';

export interface ScheduledJobData {
  jobId: string;
  trigger?: 'SCHEDULE' | 'MANUAL' | 'CATCHUP';
  scheduledFor?: string;
}

export type ScheduleSpec =
  | {
      jobId: string;
      type: 'INTERVAL';
      everyMs: number;
      startAt?: number;
      endAt?: number;
    }
  | {
      jobId: string;
      type: 'CRON';
      pattern: string;
      tz: string;
      startAt?: number;
      endAt?: number;
    }
  | { jobId: string; type: 'ONE_SHOT'; runAtMs: number };
