// src/types/job-data.ts

/**
 * Defines the data structure for a flyer processing job.
 * This is the information passed to the worker when a new flyer is uploaded.
 */
export interface FlyerJobData {
  filePath: string;
  originalFileName: string;
  checksum: string;
  userId?: string;
  submitterIp?: string;
  userProfileAddress?: string;
}

/**
 * Defines the data structure for an email sending job.
 */
export interface EmailJobData {
  to: string;
  subject: string;
  text: string;
  html: string;
}

/**
 * Defines the data structure for a daily analytics reporting job.
 */
export interface AnalyticsJobData {
  reportDate: string; // e.g., '2024-10-26'
}

/**
 * Defines the data structure for a weekly analytics reporting job.
 */
export interface WeeklyAnalyticsJobData {
  reportYear: number;
  reportWeek: number; // ISO week number (1-53)
}

/**
 * Defines the data structure for a file cleanup job, which runs after a flyer is successfully processed.
 */
export interface CleanupJobData {
  flyerId: number;
  paths?: string[];
}

/**
 * Defines the data structure for the job that cleans up expired password reset tokens.
 */
export interface TokenCleanupJobData {
  timestamp: string;
}