import { Document, Types } from 'mongoose';

import { IPaginateModel } from '@/shared/interfaces/model.interface';
import { AuditFields } from '@/shared/types/common';
import { Status } from '@/shared/constants/enum.constant';

// Base Email Interface (Clean & concise)
export interface IEmailBase {
  key: string;
  name: string;
  emailStatus: string;
  status: Status;
  templateId: number;
  companyId: Types.ObjectId;
  subject: string;
  isDefault: boolean;
}

export interface IEmail extends IEmailBase, AuditFields {}

export interface IEmailDoc extends IEmail, Document {}

export interface IEmailModel extends IPaginateModel<IEmailDoc> {}

export interface SendEmailParams {
  to: string;
  companyId: string | Types.ObjectId;
  scenario: string;
  templateParams: Record<string, unknown>;
}
