# Integração Uber Drivers API — OAuth

Esqueleto pronto a ligar assim que tivermos: (1) conta Uber Business/Fleet do
cliente, (2) client_id + client_secret registados em developer.uber.com.

## Fluxo (confirmado na documentação oficial)

1. **Autorizar** — o motorista é redirecionado para:
   ```
   https://auth.uber.com/oauth/v2/authorize?client_id=<CLIENT_ID>&response_type=code
     &redirect_uri=<REDIRECT_URI>&scope=partner.accounts partner.trips partner.payments
     &state=<random>
   ```
2. **Trocar código por token** — `POST https://auth.uber.com/oauth/v2/token`
   (grant_type=authorization_code) → devolve `access_token` (válido 30 dias) +
   `refresh_token` (válido 1 ano)
3. **Chamar a API** — `GET https://api.uber.com/v1/partners/me` (perfil + rating)
   e `GET https://api.uber.com/v1/partners/payments` (ganhos, portagens)
4. **Renovar token** — `POST .../oauth/v2/token` (grant_type=refresh_token)
   antes dos 30 dias expirarem

## O que falta do cliente
- Conta Uber Business/Fleet (a mesma que já gere a frota) para criar o registo
  de developer em developer.uber.com
- NIF/dados da empresa (pedidos no registo)
- Avisar os motoristas que vão receber um pedido de autorização Uber

## Ficheiros neste esqueleto
- `uber-oauth-authorize.js` — Netlify Function, gera o link de autorização
- `uber-oauth-callback.js` — Netlify Function, troca code por token, guarda em `uber_tokens`
- `uber-partners-sync.js` — Netlify Function/cron, chama /partners/me e /partners/payments,
  grava em `uber_dados_motorista`
- `schema-uber-oauth.sql` — tabelas novas (NÃO aplicado ainda — só rascunho)

## Notas de segurança
- `client_secret` e tokens NUNCA no código — variáveis de ambiente no Netlify
- Tokens de motorista guardados em tabela própria (`uber_tokens`), RLS ativo,
  nunca expostos ao frontend
