1.0.4 • Published 8 months ago

@lugardetech/gestao-empresarial v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@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

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

Uso

Services

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

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

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

# 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
1.0.4

8 months ago

1.0.3

8 months ago