import { darAcessoDeCortesia, listarAcessosDaLoja, mexerNoAcesso } from "@/lib/digitais/servidor/acoes/alunos";
import { rotaDigital } from "@/lib/digitais/servidor/contexto";

/* Quem tem acesso aos produtos digitais da loja (e os produtos, para dar acesso).
   O que a rota faz mora em lib/digitais/servidor/acoes (o assistente usa o mesmo). */
export async function GET() {
  return rotaDigital("digital.students.read", (contexto) => listarAcessosDaLoja(contexto));
}

/* Dar acesso de cortesia (e avisar por e-mail, se a loja quiser). */
export async function POST(request: Request) {
  return rotaDigital("digital.students.write", async (contexto) => darAcessoDeCortesia(contexto, await request.json().catch(() => null)));
}

/* Bloquear, reativar ou mudar o prazo de uma pessoa num produto. */
export async function PATCH(request: Request) {
  return rotaDigital("digital.students.write", async (contexto) => mexerNoAcesso(contexto, await request.json().catch(() => null)));
}
