172 lines
No EOL
4.4 KiB
Markdown
172 lines
No EOL
4.4 KiB
Markdown
# 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:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"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`:
|
|
|
|
```env
|
|
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
|
|
|
|
```typescript
|
|
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");
|
|
``` |