export type Stage =
  | 'novo' | 'contato' | 'aguardando'
  | 'qualificado' | 'produto' | 'reuniao' | 'ganho'
  | 'desqualificado'

export type CrmType = 'lead' | 'prospect'

export type Produto = 'retail' | 'hcm' | 'tef' | 'ravsign'

export interface Lead {
  cnpj: string
  cnpj_basico: string
  razao_social: string
  nome_fantasia: string | null
  cnae_principal: string
  cnae_secundaria: string | null
  natureza_juridica: string | null
  porte_empresa: string | null
  capital_social: string | null
  identificador_matriz_filial: string | null
  municipio: string
  uf: string
  tipo_logradouro: string | null
  logradouro: string | null
  numero: string | null
  complemento: string | null
  bairro: string | null
  cep: string | null
  ddd1: string | null
  telefone1: string | null
  ddd2: string | null
  telefone2: string | null
  email: string | null
  situacao_cadastral: string | null
  situacao_especial: string | null
  data_abertura: string | null
  primeira_deteccao: string
  // Simples Nacional
  opcao_simples: boolean | null
  opcao_mei: boolean | null
  // CRM
  crm_type: CrmType
  stage: Stage
  produto: Produto | null
  motivo: string | null
  notes: string | null
  cadastrado_em: string
}

export interface Socio {
  id: number
  cnpj_basico: string
  cnpj_empresa: string
  nome_socio: string | null
  cpf_cnpj_socio: string | null
  qualificacao_socio_codigo: string | null
  qualificacao_socio_desc: string | null
  eh_administrador: boolean
}

export const STAGE_LABELS: Record<Stage, string> = {
  novo: 'Novo',
  contato: 'Contato iniciado',
  aguardando: 'Aguardando resposta',
  qualificado: 'Qualificado',
  produto: 'Produto identificado',
  reuniao: 'Reunião agendada',
  ganho: 'Fechado · ganho',
  desqualificado: 'Desqualificado',
}

export const LEAD_STAGES: Stage[] = ['novo', 'contato', 'aguardando']
export const PROSPECT_STAGES: Stage[] = ['qualificado', 'produto', 'reuniao', 'ganho']

export interface PhoneOption {
  id?: number
  nome: string
  ddd: string | null
  numero: string
}

export const PRODUTO_LABELS: Record<Produto, string> = {
  retail: 'Retail',
  hcm: 'HCM',
  tef: 'TEF · CTF',
  ravsign: 'RavSign',
}
