import { SuppressedEmailsRepository } from "../repositories/suppressed-emails-repository";
import { SesSuppressionProvider } from "@/modules/ses-webhooks/providers/ses-suppression-provider";

interface RemoveSuppressedEmailUseCaseRequest {
  email: string;
}

export class RemoveSuppressedEmailUseCase {
  constructor(
    private suppressedEmailsRepository: SuppressedEmailsRepository,
    private sesSuppressionProvider: SesSuppressionProvider
  ) {}

  async execute({ email }: RemoveSuppressedEmailUseCaseRequest): Promise<{ success: boolean }> {
    await this.suppressedEmailsRepository.remove(email);
    await this.sesSuppressionProvider.deleteSuppressedDestination(email);
    return { success: true };
  }
}
