webmoney/docs/SAAS_STATUS.md
marco 54cccdd095 refactor: migração para desenvolvimento direto no servidor
- Removido README.md padrão do Laravel (backend)
- Removidos scripts de deploy (não mais necessários)
- Atualizado copilot-instructions.md para novo fluxo
- Adicionada documentação de auditoria do servidor
- Sincronizado código de produção com repositório

Novo workflow:
- Trabalhamos diretamente em /root/webmoney (symlink para /var/www/webmoney)
- Mudanças PHP são instantâneas
- Mudanças React requerem 'npm run build'
- Commit após validação funcional
2025-12-19 11:45:32 +01:00

4.5 KiB
Executable File

WebMoney SaaS - Status de Implementação

Última atualização: 17 de Dezembro de 2025

Concluído

Fase 1: Estrutura de Planos

  • Tabela plans com 3 planos (Free, Pro Mensual, Pro Anual)
  • Tabela subscriptions para gerenciar assinaturas
  • Model Plan com relacionamentos
  • Model Subscription com métodos auxiliares

Fase 2: Integração PayPal

  • PayPalService completo (criar/cancelar/reativar assinaturas)
  • Credenciais PayPal Sandbox configuradas no servidor
  • Planos criados no PayPal com IDs salvos no banco
  • FRONTEND_URL configurado para redirects

Fase 3: Fluxo de Assinatura

  • Endpoint GET /api/plans - listar planos
  • Endpoint POST /api/subscription/create - criar assinatura
  • Endpoint GET /api/subscription/status - status atual
  • Endpoint POST /api/subscription/cancel - cancelar
  • Endpoint POST /api/subscription/reactivate - reativar
  • Webhooks PayPal funcionando (ID: 4UM53122EW59785)
  • Frontend: página de planos e checkout
  • Assinatura de teste criada: I-RHE4CFSL3T3N (Pro Mensual)

Fase 4: Enforcement de Limites

  • Limites do plano Free definidos:
    • 1 conta bancária
    • 10 categorias
    • 3 orçamentos
    • 100 transações
  • Middleware CheckPlanLimits criado
  • Middleware aplicado nas rotas de criação
  • Endpoint /subscription/status retorna uso atual
  • Widget PlanUsageWidget no Dashboard
  • Translations (es.json, pt-BR.json)

Testes Realizados (17/12/2025)

Testar com Usuário Free

  • Criar usuário sem assinatura FUNCIONA
    • Usuário de teste: testfree2@webmoney.test (ID: 4)
    • Plano Free atribuído automaticamente
  • Validar que middleware bloqueia ao atingir limite FUNCIONA
    • Contas: 1/1 → Bloqueia 2ª conta
    • Categorias: 10/10 → Bloqueia 11ª categoria
    • Budgets: 3/3 → Bloqueia 4º orçamento
  • Validar widget mostra progresso corretamente FUNCIONA
    • API retorna usage e usage_percentages corretos
  • Testar mensagens de erro amigáveis FUNCIONA
    • Mensagem: "Has alcanzado el límite de X de tu plan. Actualiza a Pro para X ilimitados."
    • Retorna error: plan_limit_exceeded com dados do limite

Testar Usuário Pro

  • Admin Pro tem limites null (ilimitados)
  • 173 categorias, 1204 transações sem bloqueio

Testar Criação de Usuários Admin

  • Endpoint POST /api/admin/users FUNCIONA
  • Tipos de usuário: Free, Pro, Admin
  • Pro/Admin recebem assinatura automática de 100 anos

Pendente - Testes de Cancelamento

  • Cancelar assinatura via PayPal
  • Verificar grace period funciona
  • Verificar downgrade para Free após expirar

Pendente - Testes de Reativação

  • Reativar assinatura cancelada via PayPal
  • Verificar status volta para ativo

🔧 Melhorias Futuras (Produção)

Prioridade Item Descrição
Alta PayPal Live Trocar credenciais sandbox para produção
Alta Histórico de pagamentos Tabela payments para registrar transações
Média Emails transacionais Notificar renovação, falha de pagamento, etc.
Média Página de faturamento Frontend com histórico e faturas
Baixa Upgrade mid-cycle Trocar de plano durante o ciclo
Baixa Cupons de desconto Sistema de cupons promocionais

📋 Credenciais e Configurações

PayPal Sandbox

Client ID: AU-E_dptCQSa_xGUmU--0pTPuZ25AWKOFP6uvamzPQZHrg1nfRaVhEebtpJ1jU_8OKyMocglbesAwIpR
Webhook ID: 4UM53122EW59785
Mode: sandbox

Planos no Banco de Dados

ID Slug Preço PayPal Plan ID
1 free 0.00 -
2 pro-monthly 9.99 P-3FJ50989UN7098919M7A752Y
3 pro-yearly 99.99 P-9FN08839NE7915003M7A76JY

Assinatura de Teste

User: marco@cnxifly.com (ID: 1)
Plan: Pro Mensual (ID: 2)
PayPal ID: I-RHE4CFSL3T3N
Status: active

🚀 Como Continuar

  1. Para testar limites Free:

    # Criar usuário de teste
    curl -X POST https://webmoney.cnxifly.com/api/register \
      -H "Content-Type: application/json" \
      -d '{"name":"Test Free","email":"testfree@test.com","password":"Test1234!"}'
    
  2. Para ir para produção:

    • Criar conta PayPal Business
    • Obter credenciais Live
    • Atualizar .env no servidor
    • Criar planos no PayPal Live
    • Atualizar IDs no banco

Documento criado para referência futura. Voltar aqui quando retomar o desenvolvimento SaaS.