import { ResponseHelper } from "@/shared/infra/http/response-helper";
import { PrismaContactsRepository } from "@/modules/contacts/repositories/prisma-contacts-repository";
import { UnsubscribeContactUseCase } from "@/modules/contacts/use-cases/unsubscribe-contact-use-case";

interface RouteParams {
  params: Promise<{ contactId: string }>;
}

/** Rota pública (sem sessão) — atende tanto o form da página de descadastro quanto o
 * POST automático "one-click" (RFC 8058) enviado pelos clientes de e-mail via
 * List-Unsubscribe-Post. */
export async function POST(_request: Request, { params }: RouteParams) {
  const { contactId } = await params;
  const useCase = new UnsubscribeContactUseCase(new PrismaContactsRepository());
  const result = await useCase.execute({ contactId });
  return ResponseHelper.success(result);
}
