Skip to content

considering valid trhu date on page#902

Merged
vitorrgg merged 1 commit intomasterfrom
cashback-page
Jan 30, 2026
Merged

considering valid trhu date on page#902
vitorrgg merged 1 commit intomasterfrom
cashback-page

Conversation

@vitorrgg
Copy link
Member

No description provided.

@netlify
Copy link

netlify bot commented Jan 27, 2026

Deploy Preview for ecomplus-admin-dev failed.

Name Link
🔨 Latest commit 6a77e2b
🔍 Latest deploy log https://app.netlify.com/projects/ecomplus-admin-dev/deploys/69791e43c229f10008cee8cb

Copy link
Member

@leomp12 leomp12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mas isso aqui tá muito overkill.
A gente só queria filtrar os loyalty_points dentro do prazo de expiração nos gráficos e tabela, não faz sentido ter tanta alteração só pra isso..

@claude veja se consegue puxar esse contexto pela tentativa do PR. A intenção não era nenhuma alteração visual, apenas alterar a contagem de pontos disponíveis para uso considerando os que ainda têm valid_thru menor que a data atual

@leomp12
Copy link
Member

leomp12 commented Jan 28, 2026

@claude

@claude
Copy link

claude bot commented Jan 28, 2026

Claude finished @leomp12's task in 1m 23s —— View job


PR Review: Too Many Changes for Simple Filter

  • Read changed files to understand current implementation
  • Review git diff to see actual changes made
  • Analyze if changes match the stated intent (filter loyalty_points by valid_thru)
  • Identify excessive changes and provide feedback
  • Provide recommendations for simplification

Concordo: Este PR está muito overkill

A intenção original era apenas filtrar os loyalty_points considerando o valid_thru nos cálculos existentes, mas o PR adicionou:

O que foi adicionado (desnecessário):

  1. Seção visual inteira de "Points expiring soon" no HTML (+110 linhas)

    • Novos cards mostrando expiração em 30/60/90 dias
    • 2 novos gráficos (expiration-timeline, expiring-summary)
    • Nova tabela com detalhes de pontos expirando
    • Novo botão de exportação
  2. Lógica completamente nova no controller:

    • Pipeline complexo para buscar pontos expirando (buildExpiringPointsPipeline)
    • Cálculo de timeline mensal de expiração (linhas 721-759)
    • 2 novos Chart.js charts (linhas 762-887)
    • Nova funcionalidade de exportação CSV
    • Novas traduções para labels de expiração
  3. Refatoração da lógica de gráficos existentes:

    • Mudou de 1 API call para 2 API calls paralelos
    • Adicionou tracking de expiredMonth
    • Alterou estrutura de dados dos gráficos

O que deveria ter sido feito:

A solução deveria ser muito mais simples. Olhando o código original em src/controllers/cashback.js:424-445, o pipeline de customers apenas precisava filtrar os loyalty_points_entries por valid_thru:

Mudança mínima necessária (linha ~429 do código original):

// ANTES (linha 429-434):
activePoints: {
  $reduce: {
    input: '$loyalty_points_entries',
    initialValue: 0,
    in: { $add: ['$$value', '$$this.active_points'] }
  }
}

// DEPOIS (com filtro):
activePoints: {
  $reduce: {
    input: {
      $filter: {
        input: '$loyalty_points_entries',
        as: 'entry',
        cond: {
          $or: [
            { $eq: [{ $ifNull: ['$$entry.valid_thru', null] }, null] },
            { $gte: ['$$entry.valid_thru', currentDate] }
          ]
        }
      }
    },
    initialValue: 0,
    in: { $add: ['$$value', '$$this.active_points'] }
  }
}

A mesma lógica deveria ser aplicada ao cálculo de activeMoney. Isso seria ~10-15 linhas de mudança no total.

Comparação:

Objetivo PR Atual Solução Adequada
Linhas adicionadas +782 ~10-15
Linhas removidas -235 ~5
Arquivos alterados 2 1
Funcionalidades adicionadas Múltiplas (charts, tables, export) Nenhuma (só filtro)
Mudanças visuais Sim (nova seção inteira) Não

Recomendação:

Reverter este PR e criar um novo com apenas o filtro de valid_thru nos pipelines de agregação existentes:

  1. Adicionar const currentDate = new Date().toISOString() no início da função
  2. Modificar o $reduce de activePoints e activeMoney para usar $filter (similar às linhas 428-445 do PR atual)
  3. Adicionar tracking de pontos expirados se necessário (opcional)

Todas as visualizações de "expiring points", novos gráficos e exportações podem ser implementadas separadamente se forem realmente necessárias.

--- | Branch: cashback-page

@vitorrgg vitorrgg merged commit b5cfb29 into master Jan 30, 2026
0 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants