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
| Campo | Tipo | Obrigatório | Validação |
|---|
order_id | string | Sim | - |
order_date | string | Sim | Formato ISO 8601 |
delivery_date | string | Sim | Formato ISO 8601 |
request_review_at | string | Não | Formato ISO 8601 |
products | array | Sim | Mínimo 1 item |
products[].product_id | string | Sim | - |
products[].sku | string | Sim | - |
products[].name | string | Sim | - |
products[].price | number | Sim | 0 a 9999999999 |
products[].url | string | Sim | - |
products[].pictures | array | Não | Array de strings |
products[].gtin | string | Não | - |
products[].mpn | string | Não | - |
customers | array | Sim | Mínimo 1 item |
customers[].name | string | Sim | - |
customers[].email | string | Sim | - |
customers[].phone | string | Sim | - |
customers[].origin | string | Nã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
| Campo | Tipo | Obrigatório | Validação |
|---|
product_id | string | Sim | - |
name | string | Sim | - |
price | number | Sim | 0 a 9999999999 (padrão: 0) |
sku | string | Sim | - |
gtin | string | Sim | - |
mpn | string | Sim | - |
url | string | Sim | - |
pictures | array | Não | Array 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
Todas as datas devem estar no formato ISO 8601:
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.