Skip to content

Definir e implementar experiência de entrada para elementos quantificáveis do domínio #25

Description

@viviangiulia

Contexto

O backend atual possui um fluxo de geração baseado em ElementoQuantificavel, incluindo conceitos como Rede, especificações e elementos independentes. A interface atual de edição livre de categorias e composições não necessariamente representa o mesmo caso de uso.

É necessário definir como o usuário informará dados de engenharia que serão transformados em elementos quantificáveis sem acoplar o frontend diretamente às classes Python do domínio.

Por exemplo, uma rede pode exigir comprimento e especificações técnicas, enquanto um hidrômetro pode exigir quantidade e características específicas.

Também é necessário definir a relação entre dois fluxos atualmente possíveis:

  1. Geração automática a partir de dados de engenharia e ElementoQuantificavel.
  2. Edição manual de orçamento por categorias e composições.

Objetivo

Definir e implementar a experiência frontend para entrada dos dados necessários ao caso de uso de geração automática de orçamento, estabelecendo sua relação com o editor manual.

Escopo

  • Mapear os tipos de entrada necessários ao fluxo atual do backend.
  • Diferenciar elementos com estruturas distintas, incluindo, conforme aplicável:
    • redes;
    • elementos unitários independentes;
    • outros tipos de ElementoQuantificavel.
  • Definir DTOs frontend independentes das classes Python.
  • Projetar formulários adequados para cada tipo de entrada.
  • Implementar validações de campos obrigatórios.
  • Permitir adicionar e remover múltiplos elementos.
  • Preparar a estrutura para serialização futura em JSON.
  • Definir como o orçamento gerado automaticamente se relaciona com a edição manual de categorias e composições.
  • Documentar as decisões de UX e fluxo adotadas.

Fora de escopo

  • Replicar classes Python no TypeScript.
  • Expor nomes internos do domínio desnecessariamente ao usuário.
  • Executar regras oficiais de geração no frontend.
  • Implementar todos os possíveis elementos futuros do domínio.
  • Duplicar no frontend regras pertencentes ao backend.

Critérios de aceite

  • Os elementos necessários ao caso de uso atual estão mapeados.
  • Existe uma representação frontend independente das classes Python.
  • O usuário consegue informar os dados necessários para pelo menos os elementos suportados pelo MVP.
  • Diferentes estruturas de elementos recebem formulários adequados.
  • Os dados podem ser convertidos em payload JSON sem dependência de modelos ORM.
  • Está definido como a geração automática se relaciona com o editor manual de orçamento.
  • O contrato esperado para a futura API está documentado.

Dependências

  • Domain Model atual.
  • Caso de uso gerar_orcamento.
  • Editor interativo de orçamento com categorias e composições.
  • Deve ser consolidada em conjunto com a definição dos contratos HTTP antes da integração.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions