export interface IMessageTemplate {
  id: string;
  name: string;
  type: 'sms' | 'email' | 'whatsapp';
  content: string;
  subject?: string;
}

export interface IRecipient {
  contactId: string;
  email?: string;
  phone?: string;
  firstName?: string;
  lastName?: string;
  customFields?: Record<string, any>;
}

export interface IBulkMessageResponse {
  successful: string[];
  failed: Array<{
    contactId: string;
    reason: string;
  }>;
  total: number;
}

export interface IEmailOptions {
  type: 'Email';
  subject: string;
  body?: string;
  html?: string;
  templateId?: string;
  attachments?: Array<{
    filename: string;
    content: string;
    contentType: string;
  }>;
  emailFrom?: string;
  emailTo?: string;
  emailCc?: string[];
  emailBcc?: string[];
  emailReplyMode?: 'reply' | 'reply_all';
  replyMessageId?: string;
  scheduledTimestamp?: number;
}

export interface ISMSOptions {
  type: 'SMS';
  message: string;
  templateId?: string;
  mediaUrl?: string;
  fromNumber?: string;
  toNumber?: string;
  scheduledTimestamp?: number;
}

export interface IWhatsAppOptions {
  type: 'WhatsApp';
  message: string;
  templateId?: string;
  templateParams?: Record<string, any>;
  mediaUrl?: string;
  scheduledTimestamp?: number;
}
