175 lines
No EOL
4.9 KiB
Markdown
175 lines
No EOL
4.9 KiB
Markdown
> Nota de atualização
|
||
>
|
||
> Este documento contém referências históricas a BFF, Appwrite ou papéis legados. No fluxo ativo do frontend, a referência correta é API direta e os papéis válidos são `admin`, `owner`, `employee` e `delivery`.
|
||
# 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");
|
||
``` |