Skip to main content

Orders Schema

O schema de Orders utiliza validação strict.
{
  order_id: string;                    // Obrigatório
  order_date: string;                  // Obrigatório (ISO 8601)
  delivery_date: string;               // Obrigatório (ISO 8601)
  request_review_at?: string;          // Opcional (ISO 8601)
  products: Array<{                    // Obrigatório (mínimo 1)
    product_id: string;                // Obrigatório
    sku: string;                       // Obrigatório
    name: string;                      // Obrigatório
    price: number;                     // Obrigatório (0-9999999999)
    url: string;                       // Obrigatório
    pictures?: string[];               // Opcional
    gtin?: string;                     // Opcional
    mpn?: string;                      // Opcional
  }>;
  customers: Array<{                   // Obrigatório (mínimo 1)
    name: string;                      // Obrigatório
    email: string;                      // Obrigatório
    phone: string;                      // Obrigatório
    origin?: string;                    // Opcional
  }>;
}

Características do Schema de Orders

  • Schema strict: não permite campos adicionais
  • Validação mínima: produtos e clientes devem ter pelo menos 1 item
  • Datas em ISO 8601: formato YYYY-MM-DDTHH:mm:ss.sssZ

Validações de Orders

CampoTipoObrigatórioValidação
order_idstringSim-
order_datestringSimFormato ISO 8601
delivery_datestringSimFormato ISO 8601
request_review_atstringNãoFormato ISO 8601
productsarraySimMínimo 1 item
products[].product_idstringSim-
products[].skustringSim-
products[].namestringSim-
products[].pricenumberSim0 a 9999999999
products[].urlstringSim-
products[].picturesarrayNãoArray de strings
products[].gtinstringNão-
products[].mpnstringNão-
customersarraySimMínimo 1 item
customers[].namestringSim-
customers[].emailstringSim-
customers[].phonestringSim-
customers[].originstringNão-

Products Schema

O schema de Products utiliza validação strict, não permitindo campos adicionais.
{
  product_id: string;                  // Obrigatório
  name: string;                        // Obrigatório
  price: number;                        // Obrigatório (0-9999999999, padrão: 0)
  sku: string;                         // Obrigatório
  gtin: string;                        // Obrigatório
  mpn: string;                         // Obrigatório
  url: string;                         // Obrigatório
  pictures?: string[];                 // Opcional
}

Características do Schema de Products

  • Schema strict: não permite campos adicionais
  • Preço tem valor padrão: se não fornecido, será 0
  • Todos os campos (exceto pictures) são obrigatórios

Validações de Products

CampoTipoObrigatórioValidação
product_idstringSim-
namestringSim-
pricenumberSim0 a 9999999999 (padrão: 0)
skustringSim-
gtinstringSim-
mpnstringSim-
urlstringSim-
picturesarrayNãoArray de strings

Exemplos de Validação

Orders - Exemplo Válido

{
  "order_id": "ORD-12345",
  "order_date": "2024-01-01T00:00:00.000Z",
  "delivery_date": "2024-01-05T00:00:00.000Z",
  "products": [
    {
      "product_id": "PROD-001",
      "sku": "SKU-001",
      "name": "Produto Exemplo",
      "price": 99.90,
      "url": "https://example.com/produto",
      "pictures": ["https://example.com/img1.jpg"],
      "gtin": "1234567890123",
      "mpn": "MPN-001"
    }
  ],
  "customers": [
    {
      "name": "João Silva",
      "email": "[email protected]",
      "phone": "+5511999999999",
      "origin": "website"
    }
  ]
}

Orders - Exemplo Inválido

{
  "order_id": "ORD-12345",
  "order_date": "2024-01-01T00:00:00.000Z",
  "delivery_date": "2024-01-05T00:00:00.000Z",
  "products": [],
  "customers": [],
  "invalid_field": "valor"  // ❌ Não permitido (schema strict)
}
Erro retornado:
  • products: Array must contain at least 1 element(s)
  • customers: Array must contain at least 1 element(s)
  • invalid_field: Unrecognized key(s) in object

Products - Exemplo Válido

{
  "product_id": "PROD-001",
  "name": "Produto Exemplo",
  "price": 99.90,
  "sku": "SKU-001",
  "gtin": "1234567890123",
  "mpn": "MPN-001",
  "url": "https://example.com/produto",
  "pictures": [
    "https://example.com/img1.jpg",
    "https://example.com/img2.jpg"
  ]
}

Products - Exemplo Inválido

{
  "product_id": "PROD-001",
  "name": "Produto Exemplo",
  "price": 99.90,
  "sku": "SKU-001",
  "invalid_field": "valor"  // ❌ Não permitido (schema strict)
}
Erro retornado:
  • gtin: Required
  • mpn: Required
  • url: Required
  • invalid_field: Unrecognized key(s) in object

Formato de Datas

Todas as datas devem estar no formato ISO 8601:
YYYY-MM-DDTHH:mm:ss.sssZ
Exemplos:
  • 2024-01-01T00:00:00.000Z
  • 2024-01-15T10:30:00.000Z
  • 2024-12-31T23:59:59.999Z

Validação de Preços

Os preços devem estar no intervalo:
  • Mínimo: 0
  • Máximo: 9.999.999.999
Valores negativos ou acima do máximo resultarão em erro de validação.