import { abrirEnvioDeArquivo, listarArquivos } from "@/lib/digitais/servidor/acoes/arquivos";
import { rotaDigital } from "@/lib/digitais/servidor/contexto";

/* A biblioteca de arquivos e o espaço usado.
   O que a rota faz mora em lib/digitais/servidor/acoes (o assistente usa o mesmo). */
export async function GET() {
  return rotaDigital("digital.files.read", (contexto) => listarArquivos(contexto), { videoDoProduto: true });
}

/* Abre o envio de um arquivo: confere formato e espaço, reserva o tamanho e
   devolve um endereço assinado para cada parte. O arquivo vai direto do
   navegador para o depósito. */
export async function POST(request: Request) {
  return rotaDigital(
    "digital.files.write",
    async ({ admin, lojaId, situacao, user, liberado }) =>
      abrirEnvioDeArquivo({ admin, lojaId, situacao, liberado, criadoPor: user.id }, await request.json().catch(() => null)),
    { videoDoProduto: true }
  );
}
