>
Pagamentos & Checkout DeepSeek R1

Cálculo de Parcelamento sem Juros para E-commerce Brasileiro (até 12x)

Módulo TypeScript que calcula parcelas no padrão brasileiro: mínimo por parcela, arredondamento correto na última e simulação exibível no checkout.

EPEquipe Prompt Salvo ·Criado em 24 de set. de 2026 ·Atualizado em 24 de set. de 2026
0cópias
0joinhas
0favoritos

O prompt

Crie um módulo TypeScript puro (sem dependências) para cálculo de parcelamento em e-commerce brasileiro.

Parâmetros:
- Moeda: BRL
- Parcelas Máximas: {{max_parcelas}} (ex.: 12)
- Valor Mínimo por Parcela: {{minimo_parcela}} centavos (ex.: 3000 = R$ 30,00)

Requisitos:
1. Função calculateInstallments(totalCents, maxN): retorna o array de opções válidas [{ n, installmentCents }] para n=1..{{max_parcelas}} onde installmentCents >= {{minimo_parcela}}; sem juros (divisão exata do total).
2. Arredondamento correto: as parcelas devem ser iguais entre si e somar exatamente o total — a diferença do piso vai para a última parcela (ex.: R$ 100,00 em 3x = 3334 + 3333 + 3333 centavos). Documente essa regra no JSDoc.
3. Função formatInstallmentOption(option): '3x de R$ 33,34 sem juros' (com a última parcela diferente quando aplicável: '3x de R$ 33,34 (última R$ 33,33)') — números em pt-BR.
4. Validação defensiva: totalCents > 0 inteiro, maxN entre 1 e {{max_parcelas}}, mínimo por parcela coerente; erros com mensagens claras (nunca NaN vazar para o front).
5. Testes unitários (vitest ou node:test) cobrindo: divisão exata, caso com resto (3x de R$ 100), total abaixo do mínimo em todas as parcelas (retorna só 1x), e formatação pt-BR.
6. Exporte também canInstall(totalCents): boolean para o checkout habilitar/desabilitar o seletor de parcelas.

Como usar

  1. Substitua {{max_parcelas}} (ex.: 12) e {{minimo_parcela}} em centavos (ex.: 3000).
  2. Cole no DeepSeek/Cursor — módulo + testes saem juntos; rode npm test para ver os casos de arredondamento passando.
  3. No checkout, chame calculateInstallments(totalCents) e renderize as opções com formatInstallmentOption() — o seletor só aparece quando canInstall() é true.
  4. Se um dia precisar de juros (parcelado com IOF), a estrutura já separa: adicione uma função calculateWithInterest() usando a mesma formatação.

Exemplo de saída

installments.ts (~120 linhas) + testes: calculateInstallments retornando opções válidas respeitando o mínimo por parcela, regra documentada de diferença no piso ir para a última parcela (3x de R$ 100 → 3334/3333/3333), formatInstallmentOption em pt-BR com menção à última diferente quando aplicável, validação defensiva sem NaN e canInstall() para habilitar o seletor no checkout.

Guias relacionados

Prompts para programação e revisão de códigoBoilerplate, refatoração e code review com auditoria de segurança: como pedir código que compila de primeira.Prompt chains: encadear prompts para tarefas complexasQuando um prompt não basta: decomponha o trabalho em etapas com saída de uma alimentando a entrada da outra.Segurança e privacidade ao usar IAs com dados pessoaisO que nunca colar em um chat de IA, como anonimizar dados sensíveis e o que a LGPD exige do seu fluxo.
Usar na extensão