import { ehDaEquipe } from "@/lib/live/regras";
import { lerCorpo, rotaDeQuemEsta } from "@/lib/live/servidor/rota";
import { ErroDaLive, publicarEstado } from "@/lib/live/servidor/sala";

export const runtime = "nodejs";

/* Levantar ou baixar a mão (como no Meet). Quem apresenta vê a fila e libera a fala. */
export async function POST(req: Request, { params }: { params: Promise<{ salaId: string }> }) {
  const { salaId } = await params;
  return rotaDeQuemEsta(req, salaId, async ({ admin, sala, eu }) => {
    if (ehDaEquipe(eu.papel)) return { ok: true };
    if (sala.participacao === "so_apresentador") throw new ErroDaLive("Nesta live só quem apresenta fala. Use o bate-papo.", 403);
    const corpo = await lerCorpo(req);
    const levantar = corpo.levantar === true;
    await admin
      .from("live_participantes")
      .update({ mao_em: levantar ? new Date().toISOString() : null })
      .eq("id", eu.id);
    const estado = await publicarEstado(admin, sala.id);
    return { ok: true, estado };
  });
}
