/**
 * Cloud Functions do bolão.
 *
 * Vazio de propósito nesta etapa: `MG-1` monta a infraestrutura e prova que os
 * emuladores rodam. A regra de negócio chega em `MG-3` (sigilo e prazo) e `MG-5`
 * (apuração) — vinda dos services que já existem e já têm teste, não escrita de
 * novo.
 *
 * O `saude` existe só para o emulador de Functions ter o que carregar: sem
 * nenhuma função exportada, não há como verificar que o build e o carregamento
 * funcionam.
 */
import { initializeApp } from 'firebase-admin/app';
import { setGlobalOptions } from 'firebase-functions/v2';
import { onRequest } from 'firebase-functions/v2/https';

/**
 * Região das Functions: **a mesma do Firestore**.
 *
 * O padrão do Firebase é `us-central1`, e o deploy de fumaça de 07/08 caiu lá —
 * com o banco em São Paulo. Cada leitura da Function cruzaria o continente e
 * voltaria, na apuração e na sincronização, que são justamente as que fazem
 * muitas leituras. Função e banco em regiões diferentes é latência que não
 * aparece em teste local nenhum: no emulador tudo é localhost.
 */
setGlobalOptions({ region: 'southamerica-east1' });

// Uma única inicialização do Admin SDK para todas as Functions do arquivo.
initializeApp();

export { liberarSigiloQuandoJogoTermina } from './sigilo';
export { registrarRevisaoDoPalpite } from './revisao';
export { criarPerfilNoCadastro } from './perfil';
export { apurarJogo } from './apuracao';
export { sincronizarComAFonte } from './sincronizacao';

export const saude = onRequest((_req, res) => {
  res.json({ ok: true, etapa: 'MG-1' });
});
