Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • back-end back-end
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Plataforma de Doações para o Pão dos Pobres
  • back-endback-end
  • Merge requests
  • !42

Open
Created Oct 09, 2025 by Gabriel Camargo Bittencourt@bittencourt.gabrielDeveloper7 of 11 tasks completed7/11 tasks
  • Report abuse
Report abuse

Feature: Campaign donation metrics

  • Overview 33
  • Commits 9
  • Pipelines 4
  • Changes 13

🔗 Task no ClickUp

ID da Task: https://app.clickup.com/t/86b6rn671

📝 Descrição das mudanças

Esta PR implementa a funcionalidade de Campaign Metrics - um sistema completo para análise de métricas de campanhas com comparação de métodos de pagamento. A implementação inclui:

🎯 Funcionalidade Principal

  • ComparePaymentMethodsUseCase: Use case para calcular métricas detalhadas de campanhas
  • Análise de Pagamentos: Comparação de performance entre PIX, Cartão de Crédito e Boleto Bancário
  • Métricas Calculadas: Total de valores arrecadados e quantidade de transações por método de pagamento
  • Filtragem Inteligente: Apenas pagamentos confirmados são considerados nas métricas

🏗️ Arquitetura Implementada

interface PaymentComparison {
  paymentMethod: PaymentMethod;
  totalAmount: number;
  totalCount: number;
}

interface CampaignWithMetrics extends Partial<Campaign> {
  paymentComparison: PaymentComparison[];
}

📊 Funcionalidades Técnicas

  • Validação de Campanha: Verifica se a campanha existe antes de calcular métricas
  • Filtragem de Status: Apenas pagamentos com status CONFIRMED são incluídos
  • Agrupamento por Método: Organiza pagamentos por PIX, CREDIT_CARD, BANK_SLIP
  • Conversão de Tipos: Converte valores Decimal do Prisma para numbers
  • Tratamento de Erros: Gerenciamento adequado de exceções e casos edge

🧪 Cobertura Completa de Testes

  • 8 cenários de teste cobrindo todos os casos de uso
  • Mocks adequados para repositórios e serviços de exceção
  • Casos edge como campanhas inexistentes e doações sem pagamentos
  • Validação de tipos com TypeScript strict mode
  • Testes de integração entre donation e campaign repositories

🎯 Tipo de Mudança

  • Bug fix (correção de bug)
  • New feature (nova funcionalidade)
  • Documentation (documentação)
  • Refactoring (refatoração)
  • Test (testes)

📸 Evidências

Exemplo de Response da API:

Screenshot_2025-10-09_at_00.00.14

✅ Checklist

  • Código segue os padrões do projeto
  • Testes foram escritos/atualizados
  • Documentação foi atualizada
  • Self-review foi feito
  • Testes unitários estão passando
  • Código foi testado localmente

📌 Notas adicionais

Edited Oct 09, 2025 by Gabriel Camargo Bittencourt
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: feature/campaign-data-payment-comparison