# Configuração das Collections no Appwrite ## Status (pronto x faltando) **Pronto** - Conteúdo descrito neste documento. **Faltando** - Confirmar no código o estado real das funcionalidades e atualizar esta seção conforme necessário. --- ## 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= ```