Pular para o conteúdo principal

Status: Approved · v2 · SPEC-ARCH-ROUTING-001

depends_on: SPEC-UX-ROUTES-001, SPEC-ARCH-STATE-001

used_by: IS-ZERO-00.3, IS-MVP-02.3, IS-MVP-16.1

Navegação, rotas e deep links

Mapa técnico de rotas consistente entre web e mobile, preservando contexto e URLs públicas.

Modelo

Princípios

Paths públicos são estáveis e preferem slugs; gestão usa IDs e exige auth/permission. packages/shared fornece route builders conceituais sem importar Expo Router ou Next navigation.

routes.team.public(slug)
routes.match.public(matchId)
routes.management.team(teamId, "squad")
routes.auth.login({ intentId, returnUrl })

URLs HTTPS https://raizfc.com.br/... são canônicas. Mobile associa essas rotas quando instalado; scheme raizfc:// é fallback interno. Links de notificação validam target atual antes de abrir ação.

Guards

Route guard melhora UX, mas autorização real é backend. Estados: anonymous → auth contextual; onboardingRequired → onboarding; unauthorized manager → 403 contextual; merged → canonical redirect; suspended → blocked page.

Parâmetros e segurança

  • ReturnUrl é interno/allowlisted.
  • Slug não substitui ID em mutations de gestão.
  • Query filters são serializados por helper.
  • Targets de notification não executam ações automaticamente.

Critérios de aceite

  • Toda rota UX possui implementação planejada web/mobile.
  • Builders compartilhados sem framework.
  • Deep links anônimos abrem páginas públicas.
  • AuthIntent preserva destino.