Skip to content

Requisitos Funcionais

Sport Tech Club - Especificação Completa de Requisitos Funcionais

Convenções

Identificação

  • Formato: RF-[MÓDULO]-[NNN]
  • Exemplo: RF-IAM-001

Priorização MoSCoW

PrioridadeSignificado% Esperado
MustObrigatório para MVP60%
ShouldImportante, mas não crítico20%
CouldDesejável se houver tempo15%
Won'tFora do escopo atual5%

Status

  • Proposto - Em análise
  • Aprovado - Validado pelo PO
  • Implementado - Em produção

1. Identity & Access Management (RF-IAM)

RF-IAM-001: Cadastro de Usuário

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir que novos usuários se cadastrem fornecendo nome, email, senha e aceitação dos termos de uso.

Critérios de Aceite:

gherkin
Given eu estou na página de cadastro
When eu preencho nome "João Silva"
And eu preencho email válido "joao@email.com"
And eu preencho senha que atende aos requisitos
And eu aceito os termos de uso
And eu clico em "Criar conta"
Then minha conta deve ser criada
And eu devo receber email de confirmação
And eu devo ser redirecionado para completar meu perfil

Regras de Negócio:

  • RN-001: Senha mínimo 8 caracteres, 1 maiúscula, 1 número, 1 especial
  • RN-002: Email deve ser único no sistema
  • RN-003: Termos de uso devem ser aceitos (LGPD)

Dependências: Nenhuma


RF-IAM-002: Login com Email/Senha

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir login com email e senha cadastrados.

Critérios de Aceite:

gherkin
Given eu tenho uma conta ativa
When eu acesso a página de login
And eu preencho meu email e senha corretos
And eu clico em "Entrar"
Then eu devo ser autenticado
And eu devo ser redirecionado para a página inicial
And meu nome deve aparecer no menu

Regras de Negócio:

  • RN-004: Bloquear conta após 5 tentativas falhas por 30 minutos
  • RN-005: Token JWT expira em 24h (refresh token 7 dias)

Dependências: RF-IAM-001


RF-IAM-003: Login Social (Google/Apple)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir login via provedores OAuth (Google, Apple).

Critérios de Aceite:

gherkin
Given eu estou na página de login
When eu clico em "Continuar com Google"
And eu autorizo o acesso no popup do Google
Then eu devo ser autenticado
And minha conta deve ser criada/vinculada automaticamente

Dependências: RF-IAM-001


RF-IAM-004: Recuperação de Senha

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir recuperação de senha via email.

Critérios de Aceite:

gherkin
Given eu esqueci minha senha
When eu clico em "Esqueci minha senha"
And eu informo meu email cadastrado
Then eu devo receber um email com link de redefinição
And o link deve expirar em 1 hora
When eu acesso o link e defino nova senha
Then minha senha deve ser atualizada
And eu devo conseguir fazer login com a nova senha

Dependências: RF-IAM-001


RF-IAM-005: Autenticação Multi-Fator (MFA)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar MFA via TOTP (Google Authenticator).

Critérios de Aceite:

gherkin
Given eu estou nas configurações de segurança
When eu ativo MFA
And eu escaneio o QR code com meu app autenticador
And eu confirmo com um código válido
Then MFA deve estar ativo na minha conta
And eu devo receber códigos de recuperação

Given MFA está ativo
When eu faço login com email/senha
Then eu devo informar o código do autenticador

Regras de Negócio:

  • RN-006: MFA obrigatório para ARENA_OWNER e roles administrativas

Dependências: RF-IAM-002


RF-IAM-006: Gestão de Perfil de Usuário

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir que o usuário gerencie seus dados pessoais.

Critérios de Aceite:

gherkin
Given eu estou logado
When eu acesso "Meu Perfil"
Then eu devo poder editar: nome, telefone, foto, data de nascimento
And eu devo poder alterar minha senha
And eu devo poder gerenciar preferências de notificação
When eu salvo as alterações
Then os dados devem ser atualizados
And eu devo ver confirmação "Perfil atualizado"

Dependências: RF-IAM-002


RF-IAM-007: Gestão de Roles (RBAC)

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve implementar controle de acesso baseado em roles.

Roles Disponíveis:

  • SUPER_ADMIN: Acesso total ao sistema
  • ARENA_OWNER: Dono de arena(s)
  • ARENA_MANAGER: Gerente de arena
  • RECEPTIONIST: Recepcionista
  • INSTRUCTOR: Professor/Instrutor
  • PLAYER: Jogador (default)

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso o painel administrativo
Then eu devo ver opções de gestão da arena
And eu devo poder atribuir roles a outros usuários

Given eu sou PLAYER
When eu tento acessar o painel administrativo
Then eu devo ser bloqueado com "Acesso não autorizado"

Dependências: RF-IAM-002


RF-IAM-008: Convite de Usuários

Prioridade: Should | Status: Aprovado

Descrição: Administradores podem convidar usuários para a arena.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso "Equipe" > "Convidar"
And eu preencho email e role
Then um convite deve ser enviado
When o convidado aceita
Then ele deve ser vinculado à minha arena com a role definida

Dependências: RF-IAM-007


RF-IAM-009: Logout

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir logout seguro.

Critérios de Aceite:

gherkin
Given eu estou logado
When eu clico em "Sair"
Then minha sessão deve ser encerrada
And meus tokens devem ser invalidados
And eu devo ser redirecionado para a página de login

Dependências: RF-IAM-002


RF-IAM-010: Logout de Todos os Dispositivos

Prioridade: Could | Status: Proposto

Descrição: O sistema deve permitir encerrar todas as sessões ativas.

Critérios de Aceite:

gherkin
Given eu estou logado em múltiplos dispositivos
When eu acesso "Segurança" > "Sair de todos os dispositivos"
And eu confirmo a ação
Then todas as minhas sessões devem ser encerradas
And eu devo fazer login novamente

Dependências: RF-IAM-009


RF-IAM-011: Verificação de Email

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve verificar emails de novos usuários.

Critérios de Aceite:

gherkin
Given eu me cadastrei
When eu recebo o email de verificação
And eu clico no link de confirmação
Then meu email deve ser marcado como verificado
And eu devo ter acesso completo à plataforma

Dependências: RF-IAM-001


RF-IAM-012: Verificação de Telefone

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve verificar telefones via SMS/WhatsApp.

Critérios de Aceite:

gherkin
Given eu informei meu telefone
When eu solicito verificação
Then eu devo receber código via SMS
When eu insiro o código correto
Then meu telefone deve ser verificado

Dependências: RF-IAM-006


RF-IAM-013: Preferências de Privacidade

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir controle de privacidade (LGPD).

Critérios de Aceite:

gherkin
Given eu estou nas configurações de privacidade
Then eu devo poder controlar:
  - Visibilidade do perfil (público/privado)
  - Aparecer em rankings
  - Compartilhar estatísticas
  - Receber comunicações de marketing
And todas as alterações devem ser registradas em log de auditoria

Dependências: RF-IAM-006


RF-IAM-014: Exclusão de Conta (LGPD)

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir exclusão de conta conforme LGPD.

Critérios de Aceite:

gherkin
Given eu quero excluir minha conta
When eu acesso "Privacidade" > "Excluir conta"
And eu confirmo com minha senha
Then minha conta deve ser marcada para exclusão
And após 30 dias meus dados devem ser anonimizados
And eu devo poder cancelar a exclusão dentro de 30 dias

Regras de Negócio:

  • RN-007: Manter dados anonimizados para fins legais por 5 anos

Dependências: RF-IAM-006


RF-IAM-015: Exportação de Dados (LGPD)

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir exportação de dados pessoais.

Critérios de Aceite:

gherkin
Given eu quero meus dados
When eu solicito exportação em "Privacidade"
Then o sistema deve gerar arquivo JSON/PDF
And eu devo receber notificação quando pronto
And o download deve estar disponível por 7 dias

Dependências: RF-IAM-006


RF-IAM-016: Gestão de Sessões Ativas

Prioridade: Could | Status: Proposto

Descrição: O sistema deve mostrar sessões ativas e permitir encerramento.

Critérios de Aceite:

gherkin
Given eu acesso "Segurança" > "Sessões"
Then eu devo ver lista de dispositivos conectados
And cada sessão deve mostrar: dispositivo, localização, última atividade
When eu clico em "Encerrar" em uma sessão
Then aquela sessão deve ser invalidada

Dependências: RF-IAM-009


RF-IAM-017: Bloqueio de Conta por Admin

Prioridade: Must | Status: Aprovado

Descrição: Administradores devem poder bloquear usuários.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso um usuário problemático
And eu clico em "Bloquear"
And eu informo o motivo
Then o usuário não deve conseguir acessar minha arena
And ele deve receber notificação de bloqueio

Dependências: RF-IAM-007


RF-IAM-018: Histórico de Acesso

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter log de acessos.

Critérios de Aceite:

gherkin
Given eu acesso "Segurança" > "Histórico"
Then eu devo ver últimos 50 acessos
And cada entrada deve mostrar: data, IP, dispositivo, localização
And acessos suspeitos devem estar destacados

Dependências: RF-IAM-002


RF-IAM-019: Termos de Uso e Políticas

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve exibir e registrar aceite de termos.

Critérios de Aceite:

gherkin
Given os termos foram atualizados
When eu faço login
Then eu devo ser forçado a aceitar os novos termos
And o aceite deve ser registrado com timestamp e IP

Dependências: RF-IAM-001


RF-IAM-020: Integração com Keycloak

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve usar Keycloak para gestão de identidade.

Critérios de Aceite:

gherkin
Given Keycloak está configurado
Then todas as operações de autenticação devem passar pelo Keycloak
And tokens devem ser validados pelo Keycloak
And roles devem ser sincronizadas com Keycloak

Dependências: Infraestrutura


2. Arena Management (RF-ARENA)

RF-ARENA-001: Cadastro de Arena

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir cadastro de novas arenas.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso "Nova Arena"
And eu preencho: nome, CNPJ, endereço, telefone, email
And eu faço upload do logo
Then a arena deve ser criada em status "Pendente"
And a equipe deve validar o CNPJ
When aprovada, a arena deve ficar "Ativa"

Regras de Negócio:

  • RN-010: CNPJ deve ser válido e único
  • RN-011: Endereço deve ser geocodificado

Dependências: RF-IAM-007


RF-ARENA-002: Edição de Arena

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir edição dos dados da arena.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER ou ARENA_MANAGER
When eu acesso "Configurações da Arena"
Then eu devo poder editar: nome, descrição, contatos, fotos
And alterações em CNPJ/endereço devem passar por aprovação

Dependências: RF-ARENA-001


RF-ARENA-003: Cadastro de Quadra

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir cadastro de quadras.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Quadras" > "Nova Quadra"
And eu preencho: nome, código, esporte, superfície
And eu defino: coberta, iluminação, max jogadores
Then a quadra deve ser criada
And ela deve aparecer na grade de horários

Regras de Negócio:

  • RN-012: Código da quadra único por arena

Dependências: RF-ARENA-001


RF-ARENA-004: Configuração de Horários

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir definir horários de funcionamento.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Horários de Funcionamento"
Then eu devo poder definir para cada dia da semana:
  - Horário de abertura
  - Horário de fechamento
  - Se está aberto ou fechado
And as reservas devem respeitar esses horários

Dependências: RF-ARENA-001


RF-ARENA-005: Datas Especiais

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir configurar feriados e eventos.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu cadastro uma data especial
And eu defino: tipo (feriado, evento, manutenção)
And eu defino horários alternativos ou fechamento
Then a agenda deve refletir essa alteração
And reservas conflitantes devem ser notificadas

Dependências: RF-ARENA-004


RF-ARENA-006: Gestão de Amenidades

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir cadastro de amenidades.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Amenidades"
Then eu devo poder adicionar/remover:
  - Estacionamento
  - Vestiários
  - Wi-Fi
  - Lanchonete
  - Loja
And essas informações devem aparecer na página da arena

Dependências: RF-ARENA-001


RF-ARENA-007: Galeria de Fotos

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir upload de fotos da arena.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Fotos"
Then eu devo poder fazer upload de até 20 fotos
And eu devo poder ordenar as fotos
And eu devo poder definir foto de capa
And as fotos devem aparecer na página pública

Regras de Negócio:

  • RN-013: Imagens max 5MB, formatos JPG/PNG/WebP

Dependências: RF-ARENA-001


RF-ARENA-008: Manutenção de Quadra

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir bloquear quadra para manutenção.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu coloco uma quadra em manutenção
And eu defino período e motivo
Then a quadra não deve aceitar novas reservas nesse período
And reservas existentes devem ser canceladas/reagendadas
And os clientes devem ser notificados

Dependências: RF-ARENA-003


RF-ARENA-009: Status da Quadra em Tempo Real

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve mostrar status atual de cada quadra.

Critérios de Aceite:

gherkin
Given eu acesso a página de quadras
Then eu devo ver para cada quadra:
  - Status: Disponível, Ocupada, Manutenção
  - Próximo horário disponível
  - Quem está jogando (se ocupada)
And o status deve atualizar em tempo real via WebSocket

Dependências: RF-ARENA-003


RF-ARENA-010: Regras de Preço por Quadra

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir definir preços por quadra.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Preços" de uma quadra
Then eu devo poder definir:
  - Preço base por hora
  - Preço por dia da semana (seg-sex vs sáb-dom)
  - Preço por horário (manhã, tarde, noite)
  - Preço mínimo e máximo

Dependências: RF-ARENA-003


RF-ARENA-011: Precificação Dinâmica

Prioridade: Could | Status: Proposto

Descrição: O sistema deve suportar preços dinâmicos baseados em demanda.

Critérios de Aceite:

gherkin
Given precificação dinâmica está ativa
When a ocupação passa de 80%
Then os preços devem aumentar em até 20%
When a ocupação está abaixo de 30%
Then os preços podem diminuir em até 15%

Regras de Negócio:

  • RN-014: Limites min/max devem ser respeitados

Dependências: RF-ARENA-010


RF-ARENA-012: Dashboard da Arena

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve fornecer dashboard de gestão.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso o dashboard
Then eu devo ver:
  - Ocupação do dia
  - Reservas pendentes
  - Faturamento do dia/semana/mês
  - Alertas e notificações
  - Próximas reservas

Dependências: RF-ARENA-001


RF-ARENA-013: Configurações de Reserva

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir configurar regras de reserva.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso "Configurações de Reserva"
Then eu devo poder definir:
  - Antecedência mínima (ex: 2 horas)
  - Antecedência máxima (ex: 30 dias)
  - Duração mínima/máxima
  - Política de cancelamento
  - Pagamento obrigatório antecipado

Dependências: RF-ARENA-001


RF-ARENA-014: Integrações Externas

Prioridade: Could | Status: Proposto

Descrição: O sistema deve permitir integrações com sistemas externos.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso "Integrações"
Then eu devo poder conectar:
  - Google Calendar
  - iCal
  - Sistemas de contabilidade
  - ERPs

Dependências: RF-ARENA-001


RF-ARENA-015: Multi-Unidades

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar múltiplas unidades por tenant.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER com plano Enterprise
When eu adiciono uma nova unidade
Then ela deve aparecer no meu painel
And eu devo poder alternar entre unidades
And relatórios devem consolidar todas as unidades

Dependências: RF-ARENA-001


3. Scheduling - Reservas (RF-SCHED)

RF-SCHED-001: Buscar Disponibilidade

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir buscar horários disponíveis.

Critérios de Aceite:

gherkin
Given eu estou na página de reservas
When eu seleciono: data, esporte, horário preferido
Then eu devo ver quadras disponíveis
And cada opção deve mostrar: quadra, preço, duração
And horários ocupados devem estar desabilitados

Dependências: RF-ARENA-003, RF-ARENA-004


RF-SCHED-002: Criar Reserva Avulsa

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir criar reserva única.

Critérios de Aceite:

gherkin
Given eu sou PLAYER logado
And encontrei um horário disponível
When eu clico em "Reservar"
And eu confirmo os dados
And eu efetuo o pagamento
Then a reserva deve ser criada com status "Confirmada"
And eu devo receber confirmação por email/push
And o horário deve ficar bloqueado para outros

Dependências: RF-SCHED-001, RF-PAY-001


RF-SCHED-003: Criar Reserva Recorrente

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir reservas recorrentes.

Critérios de Aceite:

gherkin
Given eu quero reservar toda semana
When eu crio uma reserva
And eu marco "Repetir semanalmente"
And eu defino quantidade de repetições ou data final
Then múltiplas reservas devem ser criadas
And eu devo ver resumo com todas as datas
And o valor total deve ser calculado

Regras de Negócio:

  • RN-020: Máximo 12 semanas de recorrência
  • RN-021: Desconto de 10% para mensalistas

Dependências: RF-SCHED-002


RF-SCHED-004: Cancelar Reserva

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir cancelar reservas.

Critérios de Aceite:

gherkin
Given eu tenho uma reserva futura
When eu acesso "Minhas Reservas"
And eu clico em "Cancelar"
Then o sistema deve verificar a política de cancelamento
And mostrar se haverá reembolso
When eu confirmo
Then a reserva deve ser cancelada
And o reembolso processado conforme política

Regras de Negócio:

  • RN-022: Cancelamento >24h: reembolso total
  • RN-023: Cancelamento 2-24h: reembolso 50%
  • RN-024: Cancelamento <2h: sem reembolso

Dependências: RF-SCHED-002


RF-SCHED-005: Reagendar Reserva

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir reagendar reservas.

Critérios de Aceite:

gherkin
Given eu tenho uma reserva futura
When eu clico em "Reagendar"
And eu seleciono novo horário disponível
Then a reserva deve ser movida
And se houver diferença de preço, cobrar/creditar
And notificações devem ser enviadas

Regras de Negócio:

  • RN-025: Reagendamento apenas com >2h de antecedência

Dependências: RF-SCHED-002


RF-SCHED-006: Check-in

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir check-in na chegada.

Critérios de Aceite:

gherkin
Given eu tenho uma reserva para agora
When eu acesso o app dentro de 50m da arena
And eu clico em "Check-in"
Then meu check-in deve ser registrado
And a quadra deve mostrar status "Em uso"

Alternative: Check-in via QR Code
Given eu estou na arena
When eu escaneio o QR code na quadra
Then meu check-in deve ser registrado

Dependências: RF-SCHED-002


RF-SCHED-007: No-Show

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve tratar ausências.

Critérios de Aceite:

gherkin
Given uma reserva não teve check-in
And passaram 15 minutos do horário
Then a reserva deve ser marcada como "No-show"
And penalidade deve ser aplicada conforme política
And a quadra deve ficar disponível para walk-in

Regras de Negócio:

  • RN-026: 3 no-shows = bloqueio temporário de 7 dias

Dependências: RF-SCHED-006


RF-SCHED-008: Lista de Espera

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir entrar em lista de espera.

Critérios de Aceite:

gherkin
Given o horário que eu quero está ocupado
When eu clico em "Entrar na lista de espera"
Then eu devo ser adicionado à lista
When uma vaga abrir (cancelamento)
Then eu devo ser notificado
And eu devo ter 15 minutos para confirmar

Dependências: RF-SCHED-001


RF-SCHED-009: Adicionar Participantes

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir adicionar participantes.

Critérios de Aceite:

gherkin
Given eu estou criando/editando uma reserva
When eu adiciono participantes por email/telefone
Then eles devem receber convite
And eles podem confirmar ou recusar
And a lista de participantes deve aparecer na reserva

Dependências: RF-SCHED-002


RF-SCHED-010: Divisão de Pagamento

Prioridade: Could | Status: Proposto

Descrição: O sistema deve permitir dividir pagamento entre participantes.

Critérios de Aceite:

gherkin
Given eu tenho uma reserva com 4 participantes
When eu ativo "Dividir pagamento"
Then cada participante deve receber link de pagamento
And a reserva só é confirmada quando todos pagarem

Dependências: RF-SCHED-009, RF-PAY-001


RF-SCHED-011: Reserva pela Recepção

Prioridade: Must | Status: Aprovado

Descrição: Recepcionistas devem poder criar reservas.

Critérios de Aceite:

gherkin
Given eu sou RECEPTIONIST
When eu acesso a agenda
And eu clico em um horário vago
Then eu devo poder criar reserva para um cliente
And eu devo poder buscar cliente por nome/telefone
And eu devo poder criar cliente novo

Dependências: RF-SCHED-002, RF-IAM-007


RF-SCHED-012: Bloqueio de Horário

Prioridade: Must | Status: Aprovado

Descrição: Staff deve poder bloquear horários.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu seleciono um horário
And eu clico em "Bloquear"
And eu informo motivo (aula, evento, manutenção)
Then o horário não deve aceitar reservas
And deve aparecer como "Bloqueado" na agenda

Dependências: RF-ARENA-003


RF-SCHED-013: Visualização de Agenda

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve exibir agenda visual.

Critérios de Aceite:

gherkin
Given eu acesso a agenda
Then eu devo poder ver:
  - Visão por dia (todas as quadras)
  - Visão por semana
  - Visão por quadra específica
And cada reserva deve mostrar: cliente, horário, status
And eu devo poder navegar entre dias/semanas

Dependências: RF-ARENA-003


RF-SCHED-014: Histórico de Reservas

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter histórico completo.

Critérios de Aceite:

gherkin
Given eu sou PLAYER
When eu acesso "Minhas Reservas" > "Histórico"
Then eu devo ver todas as reservas passadas
And cada uma deve mostrar: data, quadra, valor, status
And eu devo poder filtrar por período/arena

Given eu sou ARENA_MANAGER
Then eu devo ver histórico de todas as reservas da arena

Dependências: RF-SCHED-002


RF-SCHED-015: Lembretes Automáticos

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve enviar lembretes de reservas.

Critérios de Aceite:

gherkin
Given eu tenho uma reserva amanhã
Then eu devo receber lembrete 24h antes
And eu devo receber lembrete 2h antes
And os lembretes devem conter: data, hora, local, QR code

Dependências: RF-SCHED-002, RF-NOTIF-001


RF-SCHED-016: Conflito de Horário

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve prevenir double-booking.

Critérios de Aceite:

gherkin
Given uma quadra está reservada das 18h às 19h
When outro usuário tenta reservar 18:30
Then deve ser bloqueado com "Horário indisponível"
And deve ver sugestões de horários próximos

Dependências: RF-SCHED-001


RF-SCHED-017: Extensão de Reserva

Prioridade: Could | Status: Proposto

Descrição: O sistema deve permitir estender reserva em andamento.

Critérios de Aceite:

gherkin
Given eu estou jogando
And o próximo horário está disponível
When eu solicito extensão pelo app
Then eu devo poder adicionar mais tempo
And o pagamento adicional deve ser processado

Dependências: RF-SCHED-002, RF-PAY-001


RF-SCHED-018: Reserva de Pacote de Horas

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar pacotes de horas pré-pagos.

Critérios de Aceite:

gherkin
Given eu comprei um pacote de 10 horas
When eu faço uma reserva
Then eu devo poder usar horas do pacote
And o saldo deve ser atualizado
And eu devo ver saldo restante

Dependências: RF-SCHED-002, RF-PAY-005


RF-SCHED-019: Aula/Clínica

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar reservas de aula.

Critérios de Aceite:

gherkin
Given eu sou INSTRUCTOR
When eu crio uma aula
And eu defino: horário, quadra, vagas, preço por aluno
Then a aula deve aparecer para alunos
And alunos podem se inscrever
And o pagamento é por aluno

Dependências: RF-SCHED-002, RF-IAM-007


RF-SCHED-020: Walk-in

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar reservas de última hora.

Critérios de Aceite:

gherkin
Given eu estou na arena sem reserva
When o RECEPTIONIST cria reserva walk-in
Then a reserva deve começar imediatamente
And o pagamento pode ser no local
And deve haver flag "Walk-in" na reserva

Dependências: RF-SCHED-011


RF-SCHED-021: Reserva Pendente de Aprovação

Prioridade: Could | Status: Proposto

Descrição: Algumas reservas podem requerer aprovação.

Critérios de Aceite:

gherkin
Given a arena requer aprovação para novos clientes
When um novo cliente solicita reserva
Then ela fica como "Pendente"
And o ARENA_MANAGER é notificado
When ele aprova
Then a reserva é confirmada e cliente notificado

Dependências: RF-SCHED-002


RF-SCHED-022: Reserva por Telefone

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve registrar reservas por telefone.

Critérios de Aceite:

gherkin
Given um cliente liga para a arena
When o RECEPTIONIST cria reserva
And marca origem como "Telefone"
Then a reserva é criada normalmente
And SMS de confirmação é enviado ao cliente

Dependências: RF-SCHED-011


RF-SCHED-023: Reserva de Evento

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar eventos corporativos.

Critérios de Aceite:

gherkin
Given uma empresa quer reservar múltiplas quadras
When eu crio reserva tipo "Evento"
And eu seleciono múltiplas quadras e horários
Then todas as quadras são bloqueadas
And eu posso gerar orçamento e contrato

Dependências: RF-SCHED-002


RF-SCHED-024: Notificação de Vaga

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve notificar quando surgir vaga.

Critérios de Aceite:

gherkin
Given eu marquei interesse em um horário ocupado
When esse horário é cancelado
Then eu devo receber notificação push imediata
And eu devo ter 10 minutos de prioridade para reservar

Dependências: RF-SCHED-008


RF-SCHED-025: Reserva Favorita

Prioridade: Could | Status: Proposto

Descrição: O sistema deve lembrar preferências de reserva.

Critérios de Aceite:

gherkin
Given eu sempre reservo quinta 19h na Quadra 2
When eu acesso "Nova Reserva"
Then devo ver sugestão "Reservar seu horário habitual?"
When eu confirmo
Then a reserva é criada rapidamente

Dependências: RF-SCHED-002


4. Queue Management (RF-QUEUE)

RF-QUEUE-001: Visualizar Fila

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve exibir fila de espera por quadra.

Critérios de Aceite:

gherkin
Given eu estou na página de uma quadra
Then eu devo ver a fila de espera atual
And devo ver: posição, nome/apelido, tempo estimado
And a fila deve atualizar em tempo real

Dependências: RF-ARENA-003


RF-QUEUE-002: Entrar na Fila

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir entrar na fila.

Critérios de Aceite:

gherkin
Given eu fiz check-in na arena
And eu quero jogar na Quadra 1
When eu clico em "Entrar na fila"
Then eu devo ser adicionado ao final da fila
And devo ver minha posição e tempo estimado
And devo receber notificação quando for minha vez

Dependências: RF-SCHED-006


RF-QUEUE-003: Sair da Fila

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir sair da fila.

Critérios de Aceite:

gherkin
Given eu estou na fila
When eu clico em "Sair da fila"
Then eu devo ser removido
And as posições devem ser atualizadas

Dependências: RF-QUEUE-002


RF-QUEUE-004: Chamada para Jogar

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve chamar próximo da fila.

Critérios de Aceite:

gherkin
Given uma partida terminou
And há pessoas na fila
When o próximo é chamado
Then ele deve receber notificação push
And deve ter 2 minutos para aceitar
And a quadra deve mostrar "Aguardando próximo"

Regras de Negócio:

  • RN-030: Timeout de 2 minutos para aceitar

Dependências: RF-QUEUE-002


RF-QUEUE-005: Aceitar/Recusar Chamada

Prioridade: Must | Status: Aprovado

Descrição: O usuário deve poder responder à chamada.

Critérios de Aceite:

gherkin
Given eu fui chamado para jogar
When eu aceito
Then eu devo ir para a quadra
And a partida deve iniciar

When eu recuso ou não respondo em 2min
Then eu devo ir para o final da fila
And o próximo deve ser chamado

Dependências: RF-QUEUE-004


RF-QUEUE-006: Winner Stays (Ganha-Fica)

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve implementar regra ganha-fica.

Critérios de Aceite:

gherkin
Given uma partida terminou
When o time vencedor é registrado
Then o vencedor deve permanecer na quadra
And o perdedor deve ir para o final da fila
And o próximo da fila entra como desafiante

Regras de Negócio:

  • RN-031: Limite de 3 vitórias consecutivas

Dependências: RF-QUEUE-004


RF-QUEUE-007: Limite de Vitórias

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve aplicar limite de vitórias.

Critérios de Aceite:

gherkin
Given o time atual venceu 3 partidas seguidas
When a partida termina
Then mesmo vencendo, eles devem sair da quadra
And devem ver mensagem "Limite de vitórias atingido"
And os 2 próximos da fila devem jogar

Dependências: RF-QUEUE-006


RF-QUEUE-008: Registro de Placar

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir registrar placar.

Critérios de Aceite:

gherkin
Given uma partida está em andamento
When um jogador registra o placar final
Then o outro jogador deve confirmar
When ambos confirmam
Then a partida é encerrada
And o vencedor é determinado
And estatísticas são atualizadas

Dependências: RF-QUEUE-006


RF-QUEUE-009: Fila por Grupo/Time

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir fila em grupo.

Critérios de Aceite:

gherkin
Given eu quero jogar com meu parceiro
When eu entro na fila
And eu adiciono meu parceiro (que fez check-in)
Then entramos juntos na fila como time
And somos chamados juntos

Dependências: RF-QUEUE-002


RF-QUEUE-010: Prioridade na Fila

Prioridade: Could | Status: Proposto

Descrição: O sistema pode implementar prioridades.

Critérios de Aceite:

gherkin
Given configuração de prioridade está ativa
Then membros VIP têm prioridade
And quem jogou menos hoje tem prioridade
And a fila é ordenada por score de prioridade

Dependências: RF-QUEUE-001


RF-QUEUE-011: Tempo Máximo de Jogo

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve limitar tempo por partida.

Critérios de Aceite:

gherkin
Given a arena define tempo máximo de 30min
When uma partida passa de 30min
Then alerta deve ser enviado aos jogadores
And a recepção deve ser notificada
And após 5min extra, partida é encerrada automaticamente

Dependências: RF-QUEUE-006


RF-QUEUE-012: Balanceamento de Times

Prioridade: Could | Status: Proposto

Descrição: O sistema pode sugerir times balanceados.

Critérios de Aceite:

gherkin
Given 4 jogadores estão prontos para jogar
When o sistema sugere times
Then deve considerar skill rating de cada um
And times devem ter diferença máxima de 100 pontos

Dependências: RF-QUEUE-006, RF-PLAYER-003


RF-QUEUE-013: Histórico de Partidas

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter histórico.

Critérios de Aceite:

gherkin
Given eu quero ver meu histórico
When eu acesso "Minhas Partidas"
Then devo ver todas as partidas jogadas
And cada uma mostra: data, adversários, placar, resultado
And posso filtrar por esporte/período

Dependências: RF-QUEUE-008


RF-QUEUE-014: Estatísticas de Fila

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve mostrar métricas de fila.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso relatórios de fila
Then devo ver:
  - Tempo médio de espera
  - Pico de ocupação
  - Taxa de desistência
  - Jogos por hora

Dependências: RF-QUEUE-001


RF-QUEUE-015: Notificações de Fila

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve enviar notificações.

Critérios de Aceite:

gherkin
Given eu estou na fila
Then devo receber notificação quando:
  - Minha posição muda
  - Estou próximo (2ª posição)
  - É minha vez
  - Fui removido por inatividade

Dependências: RF-QUEUE-002, RF-NOTIF-001


5. Payment (RF-PAY)

RF-PAY-001: Pagamento via PIX

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve aceitar pagamento PIX.

Critérios de Aceite:

gherkin
Given eu estou finalizando uma reserva
When eu seleciono PIX
Then devo ver QR Code e chave copia-cola
And o QR deve expirar em 30 minutos
When eu pago
Then a confirmação deve chegar em até 30 segundos
And a reserva deve ser confirmada automaticamente

Dependências: Integração gateway


RF-PAY-002: Pagamento via Cartão

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve aceitar cartão de crédito/débito.

Critérios de Aceite:

gherkin
Given eu estou finalizando pagamento
When eu seleciono cartão
And eu preencho dados válidos
And eu seleciono parcelamento (se crédito)
Then o pagamento deve ser processado
And a reserva confirmada em caso de aprovação
And mensagem de erro clara em caso de recusa

Regras de Negócio:

  • RN-040: Parcelamento até 12x sem juros (> R$100)

Dependências: Integração gateway


RF-PAY-003: Salvar Cartão

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve permitir salvar cartões.

Critérios de Aceite:

gherkin
Given eu fiz um pagamento com cartão
When eu marco "Salvar para próximas compras"
Then o cartão deve ser tokenizado
And eu devo ver últimos 4 dígitos nas próximas compras
And eu devo poder remover cartões salvos

Regras de Negócio:

  • RN-041: Não armazenar dados completos (PCI-DSS)

Dependências: RF-PAY-002


RF-PAY-004: Reembolso

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve processar reembolsos.

Critérios de Aceite:

gherkin
Given uma reserva foi cancelada com direito a reembolso
When o reembolso é solicitado
Then deve ser processado automaticamente
And crédito em PIX: até 24h
And crédito em cartão: até 2 faturas
And o usuário deve ser notificado do status

Dependências: RF-PAY-001, RF-PAY-002


RF-PAY-005: Wallet (Carteira Digital)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar carteira digital.

Critérios de Aceite:

gherkin
Given eu quero adicionar créditos
When eu seleciono valor e pago
Then os créditos devem aparecer no meu saldo
When eu faço uma reserva
Then posso pagar com saldo da carteira
And sobras ficam como crédito

Regras de Negócio:

  • RN-042: Créditos não expiram
  • RN-043: Créditos não são reembolsáveis em dinheiro

Dependências: RF-PAY-001


RF-PAY-006: Split Payment

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar divisão de pagamento.

Critérios de Aceite:

gherkin
Given a arena trabalha com instrutores
When um aluno paga uma aula
Then o pagamento deve ser dividido:
  - 70% para a arena
  - 30% para o instrutor
And cada parte recebe seu repasse

Dependências: Integração gateway


RF-PAY-007: Cobrança Recorrente

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar mensalidades.

Critérios de Aceite:

gherkin
Given eu tenho mensalidade ativa
When chega o dia de cobrança
Then o cartão salvo deve ser cobrado
E eu devo receber recibo
Se falhar, devo receber aviso para atualizar cartão

Dependências: RF-PAY-003


RF-PAY-008: Extrato Financeiro

Prioridade: Must | Status: Aprovado

Descrição: O usuário deve ver histórico de transações.

Critérios de Aceite:

gherkin
Given eu acesso "Financeiro"
Then devo ver todas as transações
And cada uma mostra: data, descrição, valor, status
And posso filtrar por período
And posso exportar para PDF/Excel

Dependências: RF-PAY-001


RF-PAY-009: Comprovante/Recibo

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve gerar comprovantes.

Critérios de Aceite:

gherkin
Given um pagamento foi aprovado
Then um recibo deve ser gerado
And enviado por email automaticamente
And disponível para download no app
And deve conter: data, valor, descrição, arena

Dependências: RF-PAY-001


RF-PAY-010: Nota Fiscal

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve gerar nota fiscal.

Critérios de Aceite:

gherkin
Given a arena está configurada para NF
When um pagamento é confirmado
Then a NF deve ser emitida automaticamente
And enviada ao cliente por email
And deve constar CPF/CNPJ do cliente

Dependências: RF-PAY-001, Integração NF


RF-PAY-011: Pagamento no Local

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar pagamento presencial.

Critérios de Aceite:

gherkin
Given a arena aceita pagamento no local
When o RECEPTIONIST marca reserva como "Pagar no local"
Then a reserva fica pendente de pagamento
E na chegada, o pagamento é registrado manualmente
E o RECEPTIONIST informa método (dinheiro, cartão, PIX)

Dependências: RF-SCHED-011


RF-PAY-012: Cupom de Desconto

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar cupons.

Critérios de Aceite:

gherkin
Given existe um cupom "PROMO10" de 10% de desconto
When eu aplico o cupom no checkout
Then o desconto deve ser calculado
E o valor final atualizado
Se cupom inválido/expirado, mostrar erro

Regras de Negócio:

  • RN-044: Cupons podem ter limite de uso
  • RN-045: Cupons podem ter valor mínimo de compra

Dependências: RF-PAY-001


RF-PAY-013: Gift Card

Prioridade: Could | Status: Proposto

Descrição: O sistema deve suportar cartões presente.

Critérios de Aceite:

gherkin
Given eu quero presentear alguém
When eu compro um gift card de R$100
Then devo receber código único
Quando o presenteado usa o código
Então R$100 são creditados na wallet dele

Dependências: RF-PAY-005


RF-PAY-014: Relatório Financeiro da Arena

Prioridade: Must | Status: Aprovado

Descrição: A arena deve ter relatórios financeiros.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso "Financeiro"
Then devo ver:
  - Faturamento do período
  - Breakdown por quadra/serviço
  - Taxas cobradas
  - Valor líquido
  - Repasses pendentes

Dependências: RF-PAY-001


RF-PAY-015: Gestão de Repasses

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve gerenciar repasses para instrutores.

Critérios de Aceite:

gherkin
Given eu sou INSTRUCTOR com splits pendentes
When acesso "Meus Ganhos"
Então vejo saldo disponível
E histórico de repasses
E posso solicitar saque (se > R$50)

Dependências: RF-PAY-006


RF-PAY-016: Cobrança de No-Show

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve cobrar por no-shows.

Critérios de Aceite:

gherkin
Given política de no-show está configurada
When ocorre um no-show
Then se pré-pago: valor é retido
Se pós-pago: cobrança é tentada no cartão salvo
Se falhar: usuário fica com débito pendente

Dependências: RF-SCHED-007, RF-PAY-003


RF-PAY-017: Limite de Crédito

Prioridade: Could | Status: Proposto

Descrição: O sistema pode oferecer crédito a clientes frequentes.

Critérios de Aceite:

gherkin
Given eu sou cliente há 6 meses sem inadimplência
When a arena ativa crédito para mim
Então posso fazer reservas sem pagar na hora
E recebo fatura consolidada semanal/mensal

Dependências: RF-PAY-001


RF-PAY-018: Integração Contábil

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve integrar com sistemas contábeis.

Critérios de Aceite:

gherkin
Given a arena usa ContaAzul
When um pagamento é processado
Then a transação é sincronizada automaticamente
E aparece no dashboard contábil

Dependências: RF-PAY-001, Integração ERP


RF-PAY-019: Antecipação de Recebíveis

Prioridade: Could | Status: Proposto

Descrição: A arena pode antecipar recebíveis.

Critérios de Aceite:

gherkin
Given a arena tem recebíveis futuros (cartão parcelado)
When solicita antecipação
Then vê taxa e valor líquido
Quando confirma, recebe em D+1

Dependências: RF-PAY-002


RF-PAY-020: Boleto Bancário

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve suportar boleto.

Critérios de Aceite:

gherkin
Given eu seleciono pagamento por boleto
Then um boleto com vencimento em 3 dias é gerado
E enviado por email
Quando pago, a compensação ocorre em D+1/D+2
E a reserva é confirmada

Regras de Negócio:

  • RN-046: Boleto apenas para valores > R$50

Dependências: Integração gateway


6. Gamification (RF-GAME)

RF-GAME-001: Sistema de XP

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve atribuir XP por atividades.

Critérios de Aceite:

gherkin
Given eu completo uma partida
Then devo ganhar XP baseado em:
  - Duração do jogo
  - Resultado (vitória = bônus)
  - Primeiro jogo do dia (bônus)
And meu total de XP deve ser atualizado
And devo ver animação de XP ganho

Tabela de XP:

AtividadeXP
Partida jogada50
Vitória+25
Check-in10
Primeiro jogo do dia+20
Streak (sequência)+10/dia

Dependências: RF-QUEUE-008


RF-GAME-002: Sistema de Níveis

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve ter progressão por níveis.

Critérios de Aceite:

gherkin
Given eu tenho XP suficiente para subir de nível
When meu XP ultrapassa o limiar
Then devo subir de nível
And ver animação de level up
And receber notificação
And desbloquear benefícios do nível

Tabela de Níveis:

NívelXP NecessárioBenefício
1-50-500Badge iniciante
6-10501-15005% desconto
11-201501-500010% desconto
21-505001-20000Prioridade na fila
51+20000+VIP

Dependências: RF-GAME-001


RF-GAME-003: Conquistas (Achievements)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve ter sistema de conquistas.

Critérios de Aceite:

gherkin
Given eu atingi um marco (ex: 10 jogos)
Then a conquista deve ser desbloqueada
And devo ver popup de conquista
And ela deve aparecer no meu perfil
And devo ganhar XP bônus

Exemplos de Conquistas:

  • Primeiro Jogo
  • 10 Jogos
  • 100 Jogos
  • 5 Vitórias Seguidas
  • Jogou nos 3 esportes
  • Madrugador (jogo antes das 8h)
  • Coruja (jogo após 22h)

Dependências: RF-GAME-001


RF-GAME-004: Streaks (Sequências)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve rastrear atividade contínua.

Critérios de Aceite:

gherkin
Given eu joguei ontem
When eu jogo hoje
Then meu streak aumenta em 1
And ganho XP bônus progressivo
Quando não jogo por 2 dias
Então meu streak é resetado para 0

Regras de Negócio:

  • RN-050: XP bônus = 10 × dias de streak (max 100)

Dependências: RF-GAME-001


RF-GAME-005: Leaderboards (Rankings)

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve exibir rankings.

Critérios de Aceite:

gherkin
Given eu acesso "Rankings"
Then devo ver rankings por:
  - XP total
  - Vitórias
  - Streak atual
  - Por esporte
  - Por arena
And devo ver minha posição
And top 10 devem ter destaque

Dependências: RF-GAME-001


RF-GAME-006: Skill Rating

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve calcular rating de habilidade.

Critérios de Aceite:

gherkin
Given eu completei uma partida
Then meu rating deve ser atualizado usando sistema ELO
And vitória contra melhor = mais pontos
And derrota para pior = menos pontos
And rating inicial = 1500

Dependências: RF-QUEUE-008


RF-GAME-007: Perfil de Jogador Público

Prioridade: Should | Status: Aprovado

Descrição: Jogadores devem ter perfil público.

Critérios de Aceite:

gherkin
Given eu acesso o perfil de outro jogador
Then devo ver (se público):
  - Nível e XP
  - Conquistas
  - Estatísticas
  - Skill rating por esporte
And devo poder adicionar como amigo

Dependências: RF-GAME-002, RF-IAM-013


RF-GAME-008: Desafios Diários/Semanais

Prioridade: Could | Status: Proposto

Descrição: O sistema pode ter desafios periódicos.

Critérios de Aceite:

gherkin
Given existe um desafio "Jogue 3 partidas esta semana"
When eu completo o desafio
Then devo receber recompensa (XP bônus, badge)
And o desafio deve ser marcado como concluído

Dependências: RF-GAME-001


RF-GAME-009: Recompensas por Nível

Prioridade: Should | Status: Aprovado

Descrição: Níveis devem dar benefícios reais.

Critérios de Aceite:

gherkin
Given eu subi para nível 10
Then devo desbloquear:
  - Cupom de 5% desconto
  - Badge exclusiva
  - Prioridade na lista de espera
And os benefícios devem ser aplicados automaticamente

Dependências: RF-GAME-002


RF-GAME-010: Histórico de Confrontos

Prioridade: Could | Status: Proposto

Descrição: O sistema deve mostrar histórico de rivais.

Critérios de Aceite:

gherkin
Given eu joguei várias vezes contra o mesmo jogador
When eu vejo o perfil dele
Then devo ver nosso histórico de confrontos
And estatísticas head-to-head

Dependências: RF-QUEUE-008


RF-GAME-011: Temporadas

Prioridade: Could | Status: Proposto

Descrição: O sistema pode ter temporadas com reset de rankings.

Critérios de Aceite:

gherkin
Given uma temporada terminou
Then rankings são arquivados
And top jogadores recebem recompensas
And nova temporada começa com rankings zerados
And histórico fica disponível

Dependências: RF-GAME-005


RF-GAME-012: Notificações de Gamificação

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve notificar progressos.

Critérios de Aceite:

gherkin
Given eu estou ativo no app
Then devo receber notificação quando:
  - Subo de nível
  - Desbloqueo conquista
  - Meu streak está em risco
  - Alguém me ultrapassou no ranking

Dependências: RF-GAME-001, RF-NOTIF-001


RF-GAME-013: Compartilhamento Social

Prioridade: Could | Status: Proposto

Descrição: O sistema deve permitir compartilhar conquistas.

Critérios de Aceite:

gherkin
Given eu desbloqueei uma conquista
When eu clico em "Compartilhar"
Then devo poder postar em Instagram/WhatsApp
And a imagem deve conter: conquista, meu nível, branding

Dependências: RF-GAME-003


RF-GAME-014: Match MVP

Prioridade: Could | Status: Proposto

Descrição: O sistema pode eleger MVP da partida.

Critérios de Aceite:

gherkin
Given uma partida terminou
Then jogadores podem votar no MVP
O mais votado recebe XP bônus
E aparece no histórico da partida

Dependências: RF-QUEUE-008


RF-GAME-015: Badges Especiais

Prioridade: Could | Status: Proposto

Descrição: O sistema pode ter badges por eventos.

Critérios de Aceite:

gherkin
Given é um evento especial (aniversário da arena, torneio)
When eu participo
Then recebo badge comemorativa exclusiva
E ela aparece no meu perfil

Dependências: RF-GAME-003


7. Notification (RF-NOTIF)

RF-NOTIF-001: Push Notifications

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve enviar notificações push.

Critérios de Aceite:

gherkin
Given eu tenho o app instalado
And permiti notificações
Then devo receber push para:
  - Confirmação de reserva
  - Lembretes
  - Chamada na fila
  - Conquistas
And devo poder abrir o app diretamente da notificação

Dependências: Firebase/APNs


RF-NOTIF-002: Email Transacional

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve enviar emails transacionais.

Critérios de Aceite:

gherkin
Given uma ação importante ocorreu
Then email deve ser enviado para:
  - Confirmação de cadastro
  - Confirmação de reserva
  - Recibos de pagamento
  - Recuperação de senha
And emails devem usar template responsivo
And devem ter branding da arena

Dependências: SendGrid/SES


RF-NOTIF-003: SMS

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve enviar SMS.

Critérios de Aceite:

gherkin
Given o usuário tem telefone verificado
And a arena ativou SMS
Then SMS deve ser enviado para:
  - Confirmação de reserva
  - Lembretes (opcional)
  - Códigos de verificação
And deve respeitar preferências do usuário

Dependências: Twilio


RF-NOTIF-004: WhatsApp Business

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve integrar com WhatsApp.

Critérios de Aceite:

gherkin
Given a arena tem WhatsApp Business
When eu faço uma reserva
Then posso optar por receber confirmação via WhatsApp
E receber lembretes
E interagir para cancelar/reagendar

Dependências: WhatsApp Business API


RF-NOTIF-005: Preferências de Notificação

Prioridade: Must | Status: Aprovado

Descrição: O usuário deve controlar suas notificações.

Critérios de Aceite:

gherkin
Given eu acesso "Configurações" > "Notificações"
Then devo poder habilitar/desabilitar por:
  - Canal (push, email, SMS, WhatsApp)
  - Tipo (reservas, marketing, social)
And minhas preferências devem ser respeitadas

Dependências: RF-NOTIF-001


RF-NOTIF-006: In-App Notifications

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve ter central de notificações.

Critérios de Aceite:

gherkin
Given eu acesso o ícone de sino
Then devo ver histórico de notificações
E poder marcar como lida
E clicar para ir à ação relacionada
E ver badge com contagem de não-lidas

Dependências: RF-NOTIF-001


RF-NOTIF-007: Notificações Agendadas

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve enviar lembretes agendados.

Critérios de Aceite:

gherkin
Given eu tenho reserva amanhã
Then devo receber lembrete:
  - 24h antes
  - 2h antes
And o horário dos lembretes deve ser configurável pela arena

Dependências: RF-NOTIF-001


RF-NOTIF-008: Broadcast para Arena

Prioridade: Should | Status: Aprovado

Descrição: A arena deve poder enviar comunicados.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu crio um comunicado
And seleciono destinatários (todos, com reserva, etc.)
Then o comunicado é enviado pelos canais escolhidos
E posso agendar envio futuro

Dependências: RF-NOTIF-001


RF-NOTIF-009: Templates Personalizáveis

Prioridade: Could | Status: Proposto

Descrição: A arena pode personalizar templates.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso "Templates"
Then posso editar texto de emails/SMS
E adicionar logo e cores da marca
E ver preview antes de salvar

Dependências: RF-NOTIF-002


RF-NOTIF-010: Histórico de Envios

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve registrar envios.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso logs de notificação
Then devo ver:
  - Todas as notificações enviadas
  - Status (entregue, falha, lida)
  - Taxas de abertura

Dependências: RF-NOTIF-001


8. Reporting (RF-REP)

RF-REP-001: Dashboard em Tempo Real

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve ter dashboard ao vivo.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu acesso o dashboard
Then devo ver em tempo real:
  - Quadras ocupadas/livres
  - Fila atual
  - Reservas do dia
  - Faturamento do dia

Dependências: RF-ARENA-001


RF-REP-002: Relatório de Ocupação

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve gerar relatório de ocupação.

Critérios de Aceite:

gherkin
Given eu acesso "Relatórios" > "Ocupação"
When eu seleciono período
Then devo ver:
  - Taxa de ocupação por quadra
  - Horários mais ocupados (heatmap)
  - Comparativo com período anterior
  - Tendências

Dependências: RF-ARENA-003


RF-REP-003: Relatório Financeiro

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve gerar relatório financeiro.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso relatório financeiro
Then devo ver:
  - Receita bruta e líquida
  - Breakdown por produto/serviço
  - Ticket médio
  - Crescimento MoM/YoY
  - Projeções

Dependências: RF-PAY-001


RF-REP-004: Relatório de Clientes

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve analisar base de clientes.

Critérios de Aceite:

gherkin
Given eu acesso relatório de clientes
Then devo ver:
  - Novos vs recorrentes
  - Frequência média
  - LTV (lifetime value)
  - Churn rate
  - Top clientes

Dependências: RF-SCHED-002


RF-REP-005: Exportação de Dados

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve permitir exportar relatórios.

Critérios de Aceite:

gherkin
Given eu estou visualizando um relatório
When eu clico em "Exportar"
Then devo poder escolher formato:
  - PDF (formatado)
  - Excel (dados brutos)
  - CSV (compatibilidade)

Dependências: RF-REP-001


RF-REP-006: Agendamento de Relatórios

Prioridade: Could | Status: Proposto

Descrição: O sistema pode enviar relatórios automaticamente.

Critérios de Aceite:

gherkin
Given eu configuro um relatório agendado
And defino frequência (diário, semanal, mensal)
And defino destinatários
Then o relatório é gerado e enviado por email

Dependências: RF-REP-001


RF-REP-007: Comparativo entre Períodos

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve comparar métricas.

Critérios de Aceite:

gherkin
Given eu seleciono dois períodos
Then devo ver comparativo lado a lado
E variação percentual
E indicadores de melhora/piora

Dependências: RF-REP-001


RF-REP-008: KPIs Personalizáveis

Prioridade: Could | Status: Proposto

Descrição: O usuário pode criar métricas customizadas.

Critérios de Aceite:

gherkin
Given eu quero acompanhar uma métrica específica
When eu crio um KPI customizado
Then ele aparece no meu dashboard
E posso definir alertas de threshold

Dependências: RF-REP-001


RF-REP-009: Relatório de Instrutores

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve analisar performance de instrutores.

Critérios de Aceite:

gherkin
Given eu sou ARENA_OWNER
When eu acesso relatório de instrutores
Then devo ver por instrutor:
  - Aulas ministradas
  - Alunos atendidos
  - Avaliação média
  - Receita gerada

Dependências: RF-SCHED-019


RF-REP-010: Analytics de Engajamento

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve analisar engajamento.

Critérios de Aceite:

gherkin
Given eu acesso analytics de engajamento
Then devo ver:
  - DAU/MAU
  - Tempo médio de sessão
  - Features mais usadas
  - Funil de conversão

Dependências: Integração Analytics


9. Player Profile (RF-PLAYER)

RF-PLAYER-001: Perfil Esportivo

Prioridade: Must | Status: Aprovado

Descrição: O sistema deve manter perfil esportivo.

Critérios de Aceite:

gherkin
Given eu acesso meu perfil esportivo
Then devo poder informar:
  - Esportes praticados
  - Mão dominante
  - Nível auto-declarado
  - Anos de experiência
  - Horários preferidos

Dependências: RF-IAM-006


RF-PLAYER-002: Foto e Apelido

Prioridade: Should | Status: Aprovado

Descrição: O jogador pode ter foto e apelido.

Critérios de Aceite:

gherkin
Given eu edito meu perfil
When eu adiciono foto e apelido
Then eles aparecem na fila e partidas
E outros jogadores podem me identificar

Dependências: RF-PLAYER-001


RF-PLAYER-003: Skill Rating por Esporte

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter rating por esporte.

Critérios de Aceite:

gherkin
Given eu jogo diferentes esportes
Then devo ter rating separado para:
  - Beach Tennis
  - Vôlei de praia
  - Futevôlei
E cada um evolui independentemente

Dependências: RF-GAME-006


RF-PLAYER-004: Estatísticas de Jogos

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve calcular estatísticas.

Critérios de Aceite:

gherkin
Given eu acesso minhas estatísticas
Then devo ver:
  - Total de jogos
  - Vitórias/Derrotas
  - Win rate
  - Melhor sequência
  - Horas jogadas

Dependências: RF-QUEUE-008


RF-PLAYER-005: Histórico de Partidas

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter histórico.

Critérios de Aceite:

gherkin
Given eu acesso "Minhas Partidas"
Then devo ver todas as partidas
E cada uma mostra: data, local, adversários, resultado
E posso filtrar por esporte/resultado/período

Dependências: RF-QUEUE-008


RF-PLAYER-006: Parceiros Frequentes

Prioridade: Could | Status: Proposto

Descrição: O sistema deve identificar parceiros.

Critérios de Aceite:

gherkin
Given eu jogo frequentemente com certas pessoas
Then o sistema sugere eles como parceiros
E mostra estatísticas de quando jogamos juntos

Dependências: RF-PLAYER-005


RF-PLAYER-007: Adversários Frequentes

Prioridade: Could | Status: Proposto

Descrição: O sistema deve identificar rivais.

Critérios de Aceite:

gherkin
Given eu enfrento frequentemente certas pessoas
Then o sistema mostra histórico de confrontos
E estatísticas head-to-head

Dependências: RF-PLAYER-005


RF-PLAYER-008: Agenda Pessoal

Prioridade: Should | Status: Aprovado

Descrição: O jogador deve ver sua agenda.

Critérios de Aceite:

gherkin
Given eu acesso "Minha Agenda"
Then devo ver todas minhas reservas futuras
E poder sincronizar com Google Calendar

Dependências: RF-SCHED-002


RF-PLAYER-009: Avaliação de Arenas

Prioridade: Should | Status: Aprovado

Descrição: Jogadores podem avaliar arenas.

Critérios de Aceite:

gherkin
Given eu joguei em uma arena
When o jogo termina
Then posso avaliar de 1-5 estrelas
E escrever comentário
E a avaliação aparece no perfil da arena

Dependências: RF-SCHED-006


RF-PLAYER-010: Busca de Jogadores

Prioridade: Could | Status: Proposto

Descrição: O sistema pode permitir buscar jogadores.

Critérios de Aceite:

gherkin
Given eu quero encontrar parceiro para jogar
When eu busco jogadores
Then vejo jogadores com perfil público
E posso filtrar por nível/esporte/disponibilidade
E posso enviar convite para jogar

Dependências: RF-PLAYER-001


10. Tournament (RF-TOURN)

RF-TOURN-001: Criar Torneio

Prioridade: Should | Status: Aprovado

Descrição: A arena pode criar torneios.

Critérios de Aceite:

gherkin
Given eu sou ARENA_MANAGER
When eu crio um torneio
Then devo informar:
  - Nome e descrição
  - Data e horários
  - Formato (eliminatória, grupos, etc.)
  - Número de vagas
  - Valor de inscrição
  - Premiação

Dependências: RF-ARENA-001


RF-TOURN-002: Inscrição em Torneio

Prioridade: Should | Status: Aprovado

Descrição: Jogadores podem se inscrever.

Critérios de Aceite:

gherkin
Given existe um torneio aberto
When eu clico em "Inscrever"
And eu informo meu parceiro (se duplas)
And eu pago a inscrição
Then minha inscrição é confirmada
E apareço na lista de participantes

Dependências: RF-TOURN-001, RF-PAY-001


RF-TOURN-003: Chaves/Brackets

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve gerar e exibir chaves.

Critérios de Aceite:

gherkin
Given as inscrições encerraram
When o organizador gera as chaves
Then a chave é criada (sorteio ou seed)
E todos participantes são notificados
E a chave fica visível publicamente

Dependências: RF-TOURN-002


RF-TOURN-004: Registro de Resultados

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve registrar resultados.

Critérios de Aceite:

gherkin
Given uma partida do torneio terminou
When o organizador registra o resultado
Then a chave é atualizada
E os jogadores são notificados
E próximos confrontos são revelados

Dependências: RF-TOURN-003


RF-TOURN-005: Classificação/Ranking

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve calcular classificação.

Critérios de Aceite:

gherkin
Given o torneio está em andamento
Then devo ver classificação atualizada
E em fase de grupos: tabela com pontos
E em eliminatória: posição na chave

Dependências: RF-TOURN-004


RF-TOURN-006: Premiação

Prioridade: Could | Status: Proposto

Descrição: O sistema pode registrar premiação.

Critérios de Aceite:

gherkin
Given o torneio terminou
When o organizador registra premiação
Then vencedores recebem:
  - Badge de campeão
  - Créditos (se configurado)
  - XP bônus
E aparecem no hall da fama

Dependências: RF-TOURN-004


RF-TOURN-007: Histórico de Torneios

Prioridade: Should | Status: Aprovado

Descrição: O sistema deve manter histórico.

Critérios de Aceite:

gherkin
Given eu quero ver torneios passados
Then devo ver lista de torneios
E cada um mostra: campeões, resultados, fotos
E posso ver minha participação

Dependências: RF-TOURN-001


RF-TOURN-008: Divulgação de Torneio

Prioridade: Could | Status: Proposto

Descrição: O sistema pode promover torneios.

Critérios de Aceite:

gherkin
Given um torneio foi criado
Then ele aparece em destaque na home
E jogadores podem compartilhar
E notificações são enviadas para interessados

Dependências: RF-TOURN-001


RF-TOURN-009: Check-in de Torneio

Prioridade: Should | Status: Aprovado

Descrição: Participantes devem confirmar presença.

Critérios de Aceite:

gherkin
Given eu estou inscrito em um torneio
When chega o dia do torneio
Then devo fazer check-in no app
Se não fizer check-in até horário limite
Então sou desclassificado (WO)

Dependências: RF-TOURN-002


RF-TOURN-010: Regulamento

Prioridade: Should | Status: Aprovado

Descrição: O torneio deve ter regulamento.

Critérios de Aceite:

gherkin
Given eu acesso um torneio
Then devo ver regulamento com:
  - Regras do esporte
  - Formato de disputa
  - Critérios de desempate
  - Política de WO
E devo aceitar ao me inscrever

Dependências: RF-TOURN-001


Resumo

Contagem por Módulo

MóduloMustShouldCouldTotal
IAM125320
Arena103215
Scheduling157325
Queue85215
Payment106420
Gamification55515
Notification44210
Reporting44210
Player35210
Tournament26210
Total735027150

Distribuição MoSCoW

  • Must: 73 (49%)
  • Should: 50 (33%)
  • Could: 27 (18%)
  • Won't: 0 (0%)

Rastreabilidade

Todos os requisitos estão mapeados para:

  • Casos de Uso (USE-CASES.md)
  • Requisitos Não-Funcionais (NON-FUNCTIONAL-REQUIREMENTS.md)
  • Critérios de Aceite (ACCEPTANCE-CRITERIA.md)
  • Plano de Testes (TEST-PLAN.md)

Documento gerado em: Janeiro 2025Versão: 1.0Status: Aprovado