Este repositório foi descontinuado. O desenvolvimento deste projeto foi movido para um repositório privado e este código já não é mantido nem reflete o estado atual da API.
API em Next.js que faz a ponte entre a aplicação desktop HR Betting (C# / WPF) — onde são feitos os cálculos e a análise dos jogos — e o Telegram: recebe os sinais já calculados, entrega-os aos utilizadores através do bot (onboarding, picks, subscrição premium) e trata o sistema de pagamentos (Stripe + Supabase) que controla o acesso ao canal.
- Next.js 16 (App Router, Turbopack)
- React 19
- TypeScript
- Tailwind CSS 4
- Vercel Blob (armazenamento privado dos sinais)
- Supabase (estado das subscrições/pagamentos)
- Stripe (Checkout + webhooks de subscrição)
/start (deep link do canal ou link genérico)
-> boas-vindas, com Premium / Free
Free -> link direto do canal (sujeito à mesma aprovação por subscrição)
Premium -> Passo 1: cria o Checkout do Stripe na hora
-> "Pagar agora" (link real) -> paga
-> webhook do Stripe confirma -> Supabase: status = active
-> pede entrada no canal -> aprovado automaticamente
Migração em supabase/migrations/0001_subscribers.sql: tabelas subscribers (chave telegram_user_id — não há sistema de login no site, a identidade é sempre o ID do Telegram) e payments. RLS ligado sem policies — só o service role (usado pela API) acede.
Instalar dependências:
npm installCriar um ficheiro .env na raiz do projeto com as variáveis listadas acima.
Arrancar o servidor de desenvolvimento:
npm run devA aplicação fica disponível em http://localhost:3000.
Para testar o webhook do Stripe localmente sem precisar de um URL público, usar a Stripe CLI:
stripe listen --forward-to localhost:3000/api/payments/webhookO comando imprime um whsec_... temporário — usar esse valor como STRIPE_WEBHOOK_SECRET local enquanto o comando estiver a correr.
Outros scripts disponíveis:
npm run build # build de produção
npm run start # servir o build de produção
npm run lint # verificação de lintO projeto está ligado à Vercel, nas branches dev (preview) e master (produção). O deploy é feito automaticamente a partir do repositório Git, ou manualmente através da CLI:
npx vercel deploy # preview
npx vercel deploy --prod # produçãoDeployments de preview exigem login na Vercel (SSO) — serviços externos automáticos (Stripe, Telegram) não conseguem entregar webhooks a um URL de preview. Para testar esses fluxos, correr localmente com a Stripe CLI (ver acima) e simular os updates do Telegram diretamente por curl.