# @licita/gestao-empresarial

Módulo de Gestão Empresarial do Sistema de Licitações.

## Funcionalidades

- ✅ CRUD completo de empresas
- ✅ Validação de CNPJ
- ✅ Hooks React para gerenciamento de estado
- ✅ Integração com Supabase
- ✅ Tipos TypeScript completos

## Instalação

```bash
npm install @licita/gestao-empresarial @licita/shared-libs
```

## Uso

### Services

```typescript
import { EmpresaService } from '@licita/gestao-empresarial'

// Listar empresas
const empresas = await EmpresaService.listar()

// Criar empresa
const novaEmpresa = await EmpresaService.criar({
  cnpj: '12345678000190',
  razao_social: 'Empresa Exemplo LTDA',
  tipo_empresa: 'LTDA'
})

// Validar CNPJ
const isValid = EmpresaService.validarCnpj('12345678000190')

// Formatar CNPJ
const formatted = EmpresaService.formatarCnpj('12345678000190')
```

### Hooks React

```typescript
import { useEmpresas, useEmpresa } from '@licita/gestao-empresarial'

function EmpresasPage() {
  const { empresas, loading, error, criar, atualizar, desativar } = useEmpresas()

  const handleCreate = async (data) => {
    try {
      await criar(data)
      // Empresa criada com sucesso
    } catch (error) {
      // Tratar erro
    }
  }

  if (loading) return <div>Carregando...</div>
  if (error) return <div>Erro: {error}</div>

  return (
    <div>
      {empresas.map(empresa => (
        <div key={empresa.id}>{empresa.razao_social}</div>
      ))}
    </div>
  )
}

function EmpresaDetails({ id }: { id: string }) {
  const { empresa, loading, error } = useEmpresa(id)

  if (loading) return <div>Carregando...</div>
  if (error) return <div>Erro: {error}</div>
  if (!empresa) return <div>Empresa não encontrada</div>

  return <div>{empresa.razao_social}</div>
}
```

### Tipos

```typescript
import { EmpresaFormData, TIPOS_EMPRESA } from '@licita/gestao-empresarial'

const formData: EmpresaFormData = {
  cnpj: '12345678000190',
  razao_social: 'Empresa Exemplo',
  tipo_empresa: 'LTDA'
}

// Lista de tipos de empresa
TIPOS_EMPRESA.forEach(tipo => {
  console.log(tipo.value, tipo.label)
})
```

## Dependências

- `@licita/shared-libs`: Bibliotecas compartilhadas
- `@supabase/supabase-js`: Cliente Supabase
- `react`: React (peer dependency)
- `react-hook-form`: Formulários (peer dependency)
- `zod`: Validação (peer dependency)

## Desenvolvimento

```bash
# Instalar dependências
npm install

# Build
npm run build

# Watch mode
npm run dev

# Testes
npm test

# Lint
npm run lint
```

## Estrutura

```
src/
├── services/           # Lógica de negócios
│   └── EmpresaService.ts
├── hooks/              # React hooks
│   └── useEmpresas.ts
├── types/              # Tipos TypeScript
│   └── empresa.ts
└── index.ts           # Exports públicos
```