import { ContactExportJob } from "@prisma/client";
import { AppError } from "@/core/errors/app-error";
import { ContactExportJobsRepository } from "../repositories/contact-export-jobs-repository";

interface DownloadContactExportUseCaseResponse {
  exportJob: ContactExportJob;
}

export class DownloadContactExportUseCase {
  constructor(private contactExportJobsRepository: ContactExportJobsRepository) {}

  async execute({ id }: { id: string }): Promise<DownloadContactExportUseCaseResponse> {
    const exportJob = await this.contactExportJobsRepository.findById(id);
    if (!exportJob) {
      throw AppError.notFound("Exportação não encontrada");
    }
    return { exportJob };
  }
}
