import { cancelarLiveDaLoja, lerLiveDaLoja, salvarLiveDaLoja } from "@/lib/digitais/servidor/acoes/lives";
import { rotaDigital } from "@/lib/digitais/servidor/contexto";

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

/* Uma live, com os links, o saldo do mês e os produtos da loja (para soltar e para o liveshop).
   O que a rota faz mora em lib/digitais/servidor/acoes (o assistente usa o mesmo). */
export async function GET(_req: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaDigital("digital.products.read", (contexto) => lerLiveDaLoja(contexto, id));
}

/* Salva o que a loja preencheu; `naLoja` põe ou tira da vitrine. */
export async function PUT(request: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaDigital("digital.products.write", async (contexto) => salvarLiveDaLoja(contexto, id, await request.json().catch(() => null)));
}

/* Cancela a live (sai da loja; quem comprou é avisado pela loja). */
export async function DELETE(_req: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaDigital("digital.products.write", (contexto) => cancelarLiveDaLoja(contexto, id));
}
