// Tipos e interfaces para a collection empresas-dados

/**
 * Interface para dados da empresa na collection empresas-dados
 * Baseada nos campos mostrados no anexo 2
 */
export interface EmpresasDados {
  $id?: string;
  cnpj: string;
  'razao-social': string;
  'nome-fantasia': string;
  'data-abertura': string;
  situacao: string;
  'natureza-juridica': string;
  porte: string;
  'capital-social': number;
  telefone: string;
  email: string;
  'atividade-principal-codigo': string;
  'atividade-principal-desc': string;
  enderecos: EnderecoEmpresa[];
  $createdAt?: string;
  $updatedAt?: string;
}

/**
 * Interface para endereços da empresa
 */
export interface EnderecoEmpresa {
  tipo: string; // Ex: "sede", "filial", "comercial"
  cep: string;
  logradouro: string;
  numero: string;
  complemento?: string;
  bairro: string;
  cidade: string;
  estado: string;
  pais: string;
}

/**
 * Interface para dados de criação/atualização da empresa
 */
export interface EmpresasDadosInput {
  cnpj: string;
  'razao-social': string;
  'nome-fantasia': string;
  'data-abertura': string;
  situacao: string;
  'natureza-juridica': string;
  porte: string;
  'capital-social': number;
  telefone: string;
  email: string;
  'atividade-principal-codigo': string;
  'atividade-principal-desc': string;
  enderecos: EnderecoEmpresa[];
}

/**
 * Interface para resposta da API
 */
export interface ApiResponse<T = any> {
  success: boolean;
  data?: T;
  error?: string;
  details?: any;
}

/**
 * Interface para resposta paginada
 */
export interface PaginatedResponse<T> extends ApiResponse<T> {
  documents: T[];
  total: number;
}