# Configuração das Collections no Appwrite

## Problema Identificado

Após análise dos endpoints criados e testes realizados, identificamos que as collections `produtos-venda` e `produtos-estoque` não possuem os atributos necessários configurados no Appwrite. Apenas a collection `produtos-catalogo` está funcionando corretamente.

## Collections e Atributos Necessários

### 1. produtos-catalogo ✅ (Funcionando)
**Collection ID:** `NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_CATALOGO_ID`

**Atributos configurados:**
- `codigo_ean` (string, required)
- `nome` (string, required) 
- `preco_base` (double, required)
- `descricao` (string, optional)
- `categoria` (string, optional)
- `laboratorio` (string, optional)
- `principio_ativo` (string, optional)

### 2. produtos-venda ❌ (Precisa Configuração)
**Collection ID:** `NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_VENDA_ID`

**Status Atual:** Apenas ID, created_at, updated_at

**Atributos Necessários:**
- `catalogo_id` (string, required) - ID do produto do catálogo
- `data_validade` (datetime, required) - Data de validade do produto
- `preco_venda` (double, required) - Preço de venda
- `observacoes` (string, optional) - Observações sobre a venda

### 3. produtos-estoque ❌ (Precisa Configuração)
**Collection ID:** `NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_ESTOQUE_ID`

**Status Atual:** Apenas ID, created_at, updated_at

**Atributos Necessários:**
- `catalogo_id` (string, required) - ID do produto do catálogo
- `venda_id` (string, required) - ID do produto de venda
- `quantidade` (integer, required) - Quantidade em estoque
- `lote` (string, optional) - Número do lote
- `localizacao` (string, optional) - Localização no estoque

## Instruções para Configuração no Appwrite Console

### Para produtos-venda:

1. Acesse o Appwrite Console
2. Navegue até Database > Collections
3. Encontre a collection `produtos-venda`
4. Vá para a aba "Attributes"
5. Adicione os seguintes atributos:

```
Atributo: catalogo_id
Tipo: String
Tamanho: 255
Required: Sim
Array: Não

Atributo: data_validade
Tipo: DateTime
Required: Sim
Array: Não

Atributo: preco_venda
Tipo: Double
Required: Sim
Array: Não

Atributo: observacoes
Tipo: String
Tamanho: 1000
Required: Não
Array: Não
```

### Para produtos-estoque:

1. Acesse o Appwrite Console
2. Navegue até Database > Collections
3. Encontre a collection `produtos-estoque`
4. Vá para a aba "Attributes"
5. Adicione os seguintes atributos:

```
Atributo: catalogo_id
Tipo: String
Tamanho: 255
Required: Sim
Array: Não

Atributo: venda_id
Tipo: String
Tamanho: 255
Required: Sim
Array: Não

Atributo: quantidade
Tipo: Integer
Required: Sim
Array: Não

Atributo: lote
Tipo: String
Tamanho: 255
Required: Não
Array: Não

Atributo: localizacao
Tipo: String
Tamanho: 255
Required: Não
Array: Não
```

## Fluxo de Dados Entre Collections

```
Step 1: produtos-catalogo
├── Cria produto base
└── Retorna catalogo_id

Step 2: produtos-venda
├── Recebe catalogo_id do Step 1
├── Adiciona informações de venda
└── Retorna venda_id

Step 3: produtos-estoque
├── Recebe catalogo_id do Step 1
├── Recebe venda_id do Step 2
├── Adiciona informações de estoque
└── Retorna estoque_id
```

## Endpoints Criados

- **POST** `/api/produtos/catalogo` - Cadastro de produto no catálogo
- **POST** `/api/produtos/venda` - Cadastro de informações de venda
- **POST** `/api/produtos/estoque` - Cadastro de informações de estoque

## Teste dos Endpoints

Após configurar os atributos no Appwrite, você pode testar os endpoints usando:

1. **Página de Teste Individual:** `http://localhost:3000/teste-endpoints-produtos-etapas`
2. **Página de Diagnóstico:** `http://localhost:3000/diagnostico-collections`

## Verificação Pós-Configuração

Após adicionar os atributos no Appwrite Console:

1. Aguarde alguns minutos para a sincronização
2. Acesse a página de diagnóstico para verificar se os atributos foram criados
3. Teste cada endpoint individualmente
4. Teste o fluxo completo (3 etapas sequenciais)

## Arquivos Envolvidos

- `/src/app/api/produtos/catalogo/route.ts`
- `/src/app/api/produtos/venda/route.ts`
- `/src/app/api/produtos/estoque/route.ts`
- `/src/app/teste-endpoints-produtos-etapas/page.tsx`
- `/src/app/diagnostico-collections/page.tsx`
- `/src/app/api/diagnostico-collections/route.ts`

## Variáveis de Ambiente Necessárias

```env
NEXT_PUBLIC_APPWRITE_ENDPOINT=
NEXT_PUBLIC_APPWRITE_PROJECT_ID=
NEXT_PUBLIC_APPWRITE_DATABASE_ID=
NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_CATALOGO_ID=
NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_VENDA_ID=
NEXT_PUBLIC_APPWRITE_COLLECTION_PRODUTOS_ESTOQUE_ID=
APPWRITE_API_KEY=
```