Skip to content

Feat/expiracao pontos - #41

Closed
andynnnfw wants to merge 6 commits into
mainfrom
feat/expiracao-pontos
Closed

andynnnfw wants to merge 6 commits into
mainfrom
feat/expiracao-pontos

Conversation

@andynnnfw

Copy link
Copy Markdown
Contributor

No description provided.

- public/css/components.css: classes novas form-submit, auth-container-wide e progress (barra nativa com as cores da paleta)

- public/css/app.css: sai o estilo antigo da barra (.progress e .progress-bar), que agora mora no components.css

- views/auth/merchant/register.php: os dois style soltos (largura do card e margem do botao) viram classes

- views/partials/reward-progress.php: a barra passa a ser a tag progress com value, sem style de largura

- tests/Feature/RewardProgressScreenTest.php: testes conferem o value da barra e que a tela nao tem mais style solto
- src/ts/forms.ts: script novo que marca o formulario enviado, poe o botao em carregando e barra o segundo envio

- public/js/forms.js: compilado do forms.ts pelo tsc (versionado, como o masks.js)

- public/css/components.css: classe is-loading (botao apagado, rodinha girando, sem clique) respeitando reduzir movimento

- views/auth/merchant/login.php: carrega o forms.js

- views/auth/merchant/register.php: carrega o forms.js

- views/customer/balance.php: carrega o forms.js

- views/partials/merchant-footer.php: carrega o forms.js em todas as telas do painel

- tests/js/forms.test.js: testa primeiro envio, envio duplo barrado, confirm cancelado e volta do navegador

- tests/Feature/FormsScriptTest.php: confere que login, cadastro, consulta publica e painel carregam o script

- .github/workflows/ci.yml: o CI passa a rodar o teste do forms.js

- CLAUDE.md: documenta o forms.ts e a classe is-loading
- src/Support/helpers.php: funcao field_error_attr com o mapa de qual erro aponta qual campo

- views/partials/flash.php: mensagem ganha id e role (alert no erro, status no sucesso)

- public/css/components.css: borda de erro para aria-invalid e contorno transparente no lugar de outline none

- public/css/global.css: regra unica de focus-visible para links, botoes e menu

- views/auth/merchant/login.php: e-mail e senha marcados no erro de login

- views/auth/merchant/register.php: documento, telefone, e-mail e senhas marcados conforme o erro

- views/customer/balance.php: codigo da loja e telefone marcados, mensagem com id e role

- views/merchant/customer-new.php: nome e consentimento marcados

- views/merchant/customer.php: valor, pontos, consentimento e confirmacao marcados

- views/merchant/dashboard.php: telefone marcado

- views/merchant/points-rule.php: campo da regra marcado

- views/merchant/profile.php: telefone e os tres campos de senha marcados

- tests/Unit/HelpersTest.php: testes do field_error_attr

- tests/Feature/FieldErrorTest.php: testes de tela (login errado, cadastro, pontos, consulta publica, sucesso)

- CLAUDE.md: documenta o field_error_attr junto dos codigos de flash
- database/migrations/007_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 007 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

- src/Support/helpers.php: erro validade_invalida marca o campo do prazo

- views/merchant/points-rule.php: card Validade dos pontos com o select de prazo

- views/partials/flash.php: mensagens validade_invalida e validade_salva

- 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
@andynnnfw andynnnfw self-assigned this Oct 9, 2026
@andynnnfw andynnnfw closed this Oct 9, 2026
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.

1 participant