saveinmed/saveinmed-frontend/CONFIGURACAO_COLLECTIONS_APPWRITE.md
2026-01-08 14:28:34 -03:00

4.8 KiB

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

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=