Skip to main content

Validação de marcas — venda ecommerce (US 197129)

Documenta a linguagem de domínio da validação de marcas no fluxo de criação de carrinho com venda de prateleira (SaleEcommerce).

Language

schemaName: Identificador do schema PostgreSQL do tenant (ex.: arezzo), passado explicitamente ao repositório pelo caller. Avoid: schema, tenant, SearchPath (como termo de domínio)

Validação de marcas: Verificação de que os produtos do carrinho ecommerce pertencem a marcas compatíveis para venda de prateleira. Avoid: brand check, IsBrandsValid (como termo de negócio)

Loja multibrand permitida: Combinação exclusiva de marcas AREZZO e BRIZZA no mesmo carrinho ecommerce. Avoid: multimarca genérico (sem especificar quais marcas)

Products (fonte de Brand): Tabela de produtos no schema do tenant no DbCore, consultada para obter a coluna Brand por ProductId. Avoid: CoreOrg, CoreOrgDbContext (como fonte desta validação)

Relationships

  • A Validação de marcas recebe uma lista de ProductId e um schemaName
  • O schemaName é resolvido pelo caller (SchemaNameHandler ou CartService Assistant) antes da chamada ao repositório
  • Uma Loja multibrand permitida é a única exceção à regra de marca única
  • A Validação de marcasBrand da tabela Products no DbCore (schema do tenant)

Example dialogue

Dev: "O ProductRepository precisa chamar IUserProvider para obter o schema?" Domain expert: "Não — o método já recebe schemaName. Quem chama é responsável por resolver o tenant."

Flagged ambiguities

  • "schema" usado genericamente → resolvido: usar schemaName quando referir ao parâmetro do repositório.