Repository navigation
Conversation
- database/migrations/011_validade_pontos.sql: coluna points_expiry_months (padrao 12 meses) e tipo expire no points_log - database/schema.sql: mesma mudanca no estado final e registro da 011 em schema_migrations - docs/db/schema-explanation.md: documenta o prazo, o calculo do vencimento e o tipo expire - src/Models/MerchantModel.php: findById traz o prazo e updatePointsExpiry grava - src/Controllers/MerchantController.php: lista de prazos aceitos e acao de salvar a validade - views/merchant/points-rule.php: card Validade dos pontos com o select de prazo - views/partials/flash.php: mensagens validade_invalida e validade_salva, e o campo que o erro aponta - tests/Feature/PointsExpiryConfigTest.php: testes do padrao de 12 meses, troca, desligar, valor invalido e isolamento entre lojas
- src/Models/LoyaltyCardModel.php: metodos expire, expireIdle e countExpirable, com trava do cartao e registro expire na mesma transacao - bin/expire-points.php: script da rotina, com --dry-run que so mostra o que venceria - src/Support/helpers.php: tipo expire aparece como Venceu no extrato e nos relatorios - public/css/app.css: selo badge-expire com as cores de erro da paleta - docs/operacao.md: secao Vencimento dos pontos com o comando e como agendar - CLAUDE.md: comando novo e a regra de validade no modelo de dados - tests/Integration/PointsExpiryTest.php: testes da rotina (prazo por loja, renovacao, loja inativa, lotes, sem vencer em dobro) - tests/Unit/HelpersTest.php: teste do rotulo e selo do vencimento
- src/Models/LoyaltyCardModel.php: findByMerchantAndPhone devolve expires_at (ultima movimentacao mais o prazo da loja) - src/Support/helpers.php: funcao format_date para mostrar so o dia - views/partials/points-expiry.php: linha com a validade do saldo, ou aviso de vencido - views/customer/balance.php: consulta publica mostra ate quando os pontos valem - views/merchant/customer.php: tela do cliente no painel mostra a mesma data - public/css/components.css: classe points-expiry - CLAUDE.md: documenta o format_date e de onde vem a data de vencimento - tests/Feature/PointsExpiryScreenTest.php: testes das duas telas (prazo da loja, sem data, vencido, isolamento entre lojas) - tests/Unit/HelpersTest.php: teste do format_date
|
Revisão da task 31 (validade dos pontos). A base está boa: o Antes do merge
Menores
No Notion, a task 31 está como Em revisão com este PR, e o responsável é você. |
No description provided.