# 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");
```