/* global React */
// Navegação + kanban configs + helpers de formatação.
// Dados operacionais vêm de window.dataApi (Supabase).

const MODULES = [
  { id: 'dashboard', n: '00', name: 'Painel · Agenda', icon: 'home' },
  { id: 'prospeccao', n: '01', name: 'Prospecção', icon: 'target' },
  { id: 'ocr', n: '02', name: 'OCR & Análise', icon: 'file' },
  { id: 'precificacao', n: '03', name: 'Precificação', icon: 'dollar' },
  { id: 'disputa', n: '04', name: 'Disputa ao vivo', icon: 'bolt', badgeRed: 'AO VIVO' },
  { id: 'empenhos', n: '05', name: 'Empenhos', icon: 'package' },
  { id: 'logistica', n: '06', name: 'Logística', icon: 'truck' },
  { id: 'financeiro', n: '07', name: 'Financeiro', icon: 'chart' },
  { id: 'ia', n: '08', name: 'IA Gerente', icon: 'cpu' },
  { id: 'integracoes', n: '09', name: 'Comunicação', icon: 'cloud' },
  { id: 'portais', n: '10', name: 'Portais', icon: 'users' },
  { id: 'pdv', n: '11', name: 'PDV & Estoque', icon: 'shop' },
  { id: 'auditoria', n: '12', name: 'Auditoria', icon: 'shield' },
  { id: 'config', n: '13', name: 'Configurações', icon: 'settings' },
];

const KANBAN_LIC = [
  { id: 'prospec', label: 'Prospecção', color: '#7a7770' },
  { id: 'analise', label: 'Em análise', color: '#6ad7e5' },
  { id: 'precif', label: 'Precificação', color: '#f5b544' },
  { id: 'disputa', label: 'Disputa', color: '#ff5d5d' },
  { id: 'ganhos', label: 'Ganhos', color: '#d4f752' },
  { id: 'descart', label: 'Descartado', color: '#54524c' },
];

const KANBAN_EMP = [
  { id: 'rec', label: 'Recebido' },
  { id: 'val', label: 'Validado' },
  { id: 'nf-sol', label: 'NF Solicitada' },
  { id: 'nf-emit', label: 'NF Emitida' },
  { id: 'compra', label: 'Pedido Compra' },
  { id: 'separ', label: 'Separação' },
  { id: 'rev', label: 'Conferência' },
  { id: 'exp', label: 'Expedição' },
  { id: 'transp', label: 'Em transporte' },
  { id: 'entreg', label: 'Entregue' },
  { id: 'cobr', label: 'Cobrança' },
  { id: 'pago', label: 'Pago' },
];

const BRL = (n) => 'R$ ' + n.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
const NUM = (n, d = 0) => n.toLocaleString('pt-BR', { minimumFractionDigits: d, maximumFractionDigits: d });
const DT = (s) => {
  const d = new Date(s);
  return d.toLocaleDateString('pt-BR') + ' ' + d.toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit' });
};

Object.assign(window, { MODULES, KANBAN_LIC, KANBAN_EMP, BRL, NUM, DT });
