/** * Cron Job Type Definitions * Types for scheduled tasks */ import { ChannelType } from './channel'; /** * Cron job target (where to send the result) */ export interface CronJobTarget { channelType: ChannelType; channelId: string; channelName: string; } /** * Cron job last run info */ export interface CronJobLastRun { time: string; success: boolean; error?: string; duration?: number; } /** * Cron job data structure */ export interface CronJob { id: string; name: string; message: string; schedule: string; target: CronJobTarget; enabled: boolean; createdAt: string; updatedAt: string; lastRun?: CronJobLastRun; nextRun?: string; } /** * Input for creating a cron job */ export interface CronJobCreateInput { name: string; message: string; schedule: string; target: CronJobTarget; enabled?: boolean; } /** * Input for updating a cron job */ export interface CronJobUpdateInput { name?: string; message?: string; schedule?: string; target?: CronJobTarget; enabled?: boolean; } /** * Schedule type for UI picker */ export type ScheduleType = 'daily' | 'weekly' | 'monthly' | 'interval' | 'custom';