saveinmed/saveinmed-frontend/CONFIGURACAO_COLLECTION_EMPRESAS_DADOS.md
Tiago Yamamoto b39caf0fd0 first commit
2025-12-17 13:58:26 -03:00

4.4 KiB

Configuração da Collection "empresas-dados" no Appwrite

📋 DESCRIÇÃO

A collection "empresas-dados" armazena informações detalhadas das empresas cadastradas no sistema, incluindo dados da Receita Federal e endereços.

🛠️ CONFIGURAÇÃO: Atributos da Collection

1. Acesse o Appwrite Console

  • Vá para: DatabaseCollectionsempresas-dados

2. Configure os seguintes atributos na aba "Attributes":

Atributo: cnpj

  • Tipo: String
  • Tamanho: 18
  • Required: Sim
  • Array: Não
  • Descrição: CNPJ da empresa (formato: 00.000.000/0000-00)

Atributo: razao-social

  • Tipo: String
  • Tamanho: 255
  • Required: Sim
  • Array: Não
  • Descrição: Razão social da empresa

Atributo: nome-fantasia

  • Tipo: String
  • Tamanho: 255
  • Required: Sim
  • Array: Não
  • Descrição: Nome fantasia da empresa

Atributo: data-abertura

  • Tipo: String
  • Tamanho: 10
  • Required: Sim
  • Array: Não
  • Descrição: Data de abertura da empresa (formato: YYYY-MM-DD)

Atributo: situacao

  • Tipo: String
  • Tamanho: 50
  • Required: Sim
  • Array: Não
  • Descrição: Situação da empresa (ex: "ATIVA", "BAIXADA")

Atributo: natureza-juridica

  • Tipo: String
  • Tamanho: 255
  • Required: Sim
  • Array: Não
  • Descrição: Natureza jurídica da empresa

Atributo: porte

  • Tipo: String
  • Tamanho: 50
  • Required: Sim
  • Array: Não
  • Descrição: Porte da empresa (ex: "MICRO", "PEQUENO", "MÉDIO", "GRANDE")

Atributo: capital-social

  • Tipo: Float
  • Min: 0
  • Max: 999999999999
  • Required: Sim
  • Array: Não
  • Descrição: Capital social da empresa (valor numérico)

Atributo: telefone

  • Tipo: String
  • Tamanho: 20
  • Required: Sim
  • Array: Não
  • Descrição: Telefone de contato da empresa

Atributo: email

  • Tipo: String
  • Tamanho: 255
  • Required: Sim
  • Array: Não
  • Descrição: Email de contato da empresa

Atributo: atividade-principal-codigo

  • Tipo: String
  • Tamanho: 20
  • Required: Sim
  • Array: Não
  • Descrição: Código da atividade principal (CNAE)

Atributo: atividade-principal-desc

  • Tipo: String
  • Tamanho: 500
  • Required: Sim
  • Array: Não
  • Descrição: Descrição da atividade principal

Atributo: enderecos

  • Tipo: String (JSON)
  • Tamanho: 2000
  • Required: Sim
  • Array: Não
  • Descrição: Array de endereços da empresa em formato JSON

📝 ESTRUTURA DO CAMPO enderecos

O campo enderecos deve conter um JSON com a seguinte estrutura:

[
  {
    "tipo": "sede",
    "cep": "00000-000",
    "logradouro": "Rua Exemplo",
    "numero": "123",
    "complemento": "Sala 1",
    "bairro": "Centro",
    "cidade": "São Paulo",
    "estado": "SP",
    "pais": "Brasil"
  }
]

🔗 VARIÁVEL DE AMBIENTE

Certifique-se de que a seguinte variável esteja configurada no .env.local:

NEXT_PUBLIC_APPWRITE_COLLECTION_EMPRESAS_DADOS_ID=empresas-dados

⚠️ CAMPOS AUTOMÁTICOS DO APPWRITE

NÃO configure manualmente os seguintes campos, pois são gerenciados automaticamente pelo Appwrite:

  • $id - ID único do documento
  • $createdAt - Data/hora de criação
  • $updatedAt - Data/hora da última atualização
  • $permissions - Permissões do documento

🔍 RELACIONAMENTOS

Esta collection se relaciona com:

  • usuarios-data: Campo empresas_array contém referências às empresas
  • empresas: Collection principal de empresas (relacionamento via razão social)

📊 ÍNDICES RECOMENDADOS

Para melhor performance, configure os seguintes índices:

  1. Índice por CNPJ: cnpj (único)
  2. Índice por razão social: razao-social
  3. Índice por situação: situacao

🚀 EXEMPLO DE USO

import { EmpresasDadosService } from '@/services/empresasDadosService';

// Criar empresa
const novaEmpresa = await EmpresasDadosService.criarEmpresa({
  cnpj: "12.345.678/0001-90",
  "razao-social": "Empresa Exemplo LTDA",
  "nome-fantasia": "Empresa Exemplo",
  // ... outros campos
});

// Buscar por CNPJ
const empresa = await EmpresasDadosService.buscarEmpresaPorCnpj("12.345.678/0001-90");