Regras de negócio
| ID | Regra | Onde é aplicada |
|---|---|---|
| RN-01 | Todo rascunho pertence a um usuário e identifica um paciente (customerName). |
Draft |
| RN-02 | O código do rascunho, do pedido e das taxas segue padrões próprios (ORD-<timestamp>-<n>, TX001, EN001…). |
domain/value-objects/codes.ts |
| RN-03 | Cada item do rascunho é de um tipo: produto, peça ou cobertura (ItemType), e se aplica a um lado (Side, padrão AMBOS). |
DraftItem |
| RN-04 | A plantigrafia precisa estar em A4 (210 × 297 mm). O canvas do estúdio mantém a proporção A4 (1 : 1,414) e os PDFs de produção são gerados em A4 para impressão em escala real. | VectorizationCanvas, pdf-generator-service |
| RN-05 | Todo rascunho recebe a taxa de montagem TX001 (R$ 30,00 em out/2026). |
prisma-draft-repository |
| RN-06 | O preço da parcial soma produto, peças e cobertura por pé, mais a taxa de montagem. | /partial/[id] |
| RN-07 | Formas de envio são taxas cujo código contém EN (em out/2026: EN001 Retira na Fábrica, R$ 0,00; EN002 Envio Transportadora, R$ 24,90). |
Subtotal.tsx |
| RN-08 | Um cupom aplica desconto sobre a sacola e precisa ser validado pelo código. | GET /coupons/validate/:code |
| RN-09 | O pagamento é feito no checkout da InfinitePay. O valor é enviado em centavos e o identificador do pedido viaja como order_nsu = <orderId>-<cartId>. |
checkout/page.tsx |
| RN-10 | Só a passagem para Pago gera os PDFs de produção e o e-mail de confirmação. | UpdateOrderStatusUseCase |
| RN-11 | A passagem para Pronto exige informar o envio: código/link de rastreio ou retirada no local. | UpdateOrderShippingUseCase |
| RN-12 | O administrador pode mover o pedido para qualquer status, sem máquina de estados restritiva. | UpdateOrderStatusUseCase (comentário explícito no código) |
| RN-13 | Itens de catálogo não são apagados no uso cotidiano: são desativados (isActive). |
Admin: “Desativar item” |

Desenvolvido e documentado porNós Tecnologia · Desenvolvimento Criativo

