4.4 KiB
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: Database → Collections → empresas-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_arraycontém referências às empresas - empresas: Collection principal de empresas (relacionamento via razão social)
📊 ÍNDICES RECOMENDADOS
Para melhor performance, configure os seguintes índices:
- Índice por CNPJ:
cnpj(único) - Índice por razão social:
razao-social - Í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");