Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.

Repository files navigation

HR Betting API

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.

Stack técnica

  • 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)

Fluxo do bot no Telegram

/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

Base de dados (Supabase)

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.

Desenvolvimento local

Instalar dependências:

npm install

Criar um ficheiro .env na raiz do projeto com as variáveis listadas acima.

Arrancar o servidor de desenvolvimento:

npm run dev

A 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/webhook

O 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 lint

Deploy

O 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ção

Deployments 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.

About

Football matches analysis and odds calculation, used by a desktop application for HRBetting that sends automated Telegram notifications.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages