export interface OptimizationOptions {
  format: 'webp' | 'avif' | 'jpeg' | 'png';
  quality: number;
  namingTemplate: string;
  seoKeywords: string;
  preserveMetadata: boolean;
}

export interface ProcessingJob {
  id: string;
  fileName: string;
  status: 'pending' | 'processing' | 'completed' | 'failed';
  progress: number;
  originalSize: number;
  optimizedSize: number;
  errorMessage?: string;
}

export interface ProcessingBatch {
  id: string;
  name: string;
  status: 'pending' | 'processing' | 'completed' | 'failed';
  totalFiles: number;
  completedFiles: number;
  failedFiles: number;
  totalOriginalSize: number;
  totalOptimizedSize: number;
  downloadUrl?: string;
  createdAt: string;
  completedAt?: string;
}

export interface User {
  id: number;
  name: string;
  email: string;
  subscription_tier: 'free' | 'pro' | 'enterprise';
  images_processed_this_month: number;
  total_images_processed: number;
  api_key?: string;
}

export interface UserStats {
  images_processed_this_month: number;
  total_images_processed: number;
  monthly_image_limit: number;
  subscription_tier: string;
  active_jobs: number;
}

export interface SubscriptionPlan {
  id: number;
  name: string;
  monthly_price: number;
  annual_price: number;
  monthly_image_limit: number;
  max_file_size_mb: number;
  bulk_processing: boolean;
  api_access: boolean;
  priority_processing: boolean;
}