import { apagarProdutoDigital, lerProdutoDigital, salvarProdutoDigital } from "@/lib/digitais/servidor/acoes/produtos";
import { rotaDigital } from "@/lib/digitais/servidor/contexto";

type Params = { params: Promise<{ id: string }> };

/* Um produto digital inteiro: a ficha, o que o comprador recebe e os números.
   O que a rota faz mora em lib/digitais/servidor/acoes (o assistente usa o mesmo). */
export async function GET(request: Request, { params }: Params) {
  const { id } = await params;
  return rotaDigital("digital.products.read", (contexto) => lerProdutoDigital(contexto, id, request));
}

/* Salva a ficha. Publicar na loja confere antes se não falta nada. */
export async function PUT(request: Request, { params }: Params) {
  const { id } = await params;
  return rotaDigital("digital.products.write", async (contexto) => salvarProdutoDigital(contexto, id, await request.json().catch(() => null), request));
}

/* Apaga o rascunho. Produto que já vendeu não some: sai da loja. */
export async function DELETE(request: Request, { params }: Params) {
  const { id } = await params;
  return rotaDigital("digital.products.write", (contexto) => apagarProdutoDigital(contexto, id, request));
}
