/* ============================================================
   Minha Jornada — Ícones + dados das etapas
   ============================================================ */

function Icon({ name, size = 24, stroke = 2, fill = false, style }) {
  const common = {
    width: size, height: size, viewBox: "0 0 24 24",
    fill: fill ? "currentColor" : "none",
    stroke: "currentColor", strokeWidth: stroke,
    strokeLinecap: "round", strokeLinejoin: "round", style,
  };
  const P = {
    check:    <path d="M5 13l4 4L19 7" />,
    arrow:    <path d="M5 12h14M13 6l6 6-6 6" />,
    chevron:  <path d="M6 9l6 6 6-6" />,
    user:     <><circle cx="12" cy="8" r="4" /><path d="M4 21c0-4 3.6-6 8-6s8 2 8 6" /></>,
    card:     <><rect x="3" y="5" width="18" height="14" rx="2" /><path d="M3 10h18" /></>,
    doc:      <><path d="M14 3v5h5" /><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-5Z" /><path d="M8 13h8M8 17h6" /></>,
    pencil:   <><path d="M12 20h9" /><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z" /></>,
    trophy:   <><path d="M8 21h8M12 17v4" /><path d="M7 4h10v4a5 5 0 0 1-10 0V4Z" /><path d="M7 6H4v2a3 3 0 0 0 3 3M17 6h3v2a3 3 0 0 1-3 3" /></>,
    grad:     <><path d="M3 9l9-4 9 4-9 4-9-4Z" /><path d="M7 11v4c0 1.7 2.2 3 5 3s5-1.3 5-3v-4" /><path d="M21 9v5" /></>,
    seal:     <><circle cx="12" cy="9" r="6" /><path d="M9 14l-1 7 4-2 4 2-1-7" /></>,
    lock:     <><rect x="5" y="11" width="14" height="9" rx="2" /><path d="M8 11V8a4 4 0 0 1 8 0v3" /></>,
    clock:    <><circle cx="12" cy="12" r="8" /><path d="M12 8v4l3 2" /></>,
    upload:   <><path d="M12 16V4M7 9l5-5 5 5" /><path d="M5 20h14" /></>,
    info:     <><circle cx="12" cy="12" r="9" /><path d="M12 11v5M12 8h.01" /></>,
    spark:    <path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18" />,
    print:    <><path d="M6 9V3h12v6" /><rect x="6" y="13" width="12" height="8" rx="1" /><path d="M6 17H3v-5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5h-3" /></>,
    phone:    <path d="M5 4h4l2 5-3 2a12 12 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2Z" />,
    help:     <><circle cx="12" cy="12" r="9" /><path d="M9.5 9a2.5 2.5 0 1 1 3.6 2.2c-.8.5-1.1 1-1.1 1.8M12 17h.01" /></>,
  };
  return <svg {...common}>{P[name] || null}</svg>;
}

// Capas de abertura (fotos oficiais) — rotação randômica.
// UFG removido (concorrente direto). IDP/CRC/Faculdade de Direito liberados pelo cliente.
const COVERS = [
  "assets/covers/cover-fachada.webp",        // rapaz / mochila
  "assets/covers/cover-pessoa-fachada.webp", // executiva / pôr do sol
  "assets/covers/cover-empreendedor.webp",   // homem / dashboards
  "assets/covers/cover-conquista.webp",      // executiva / lobby
  "assets/covers/cover-corredor.webp",       // corredor de luz (campanha)
  "assets/covers/cover-juridico.webp",       // tribunal / direito
  "assets/covers/cover-contabil.webp",       // contábil / CRC
];
const CURSOS_CHIPS = ["Direito", "Administração", "Ciências Contábeis", "Pedagogia", "Sistemas de Informação", "Processos Gerenciais"];

// Candidato de demonstração
const CANDIDATO = {
  nome: "Mariana Alves de Souza",
  iniciais: "MA",
  numeroInscricao: "PS.26.f514d79b",
  processo: "Vestibular 2026.2 · Graduação",
};

// Funil de acompanhamento do candidato (Vestibular 2026.2)
// Fluxo real: Visita → Inscrição → Prova → Resultado → Matrícula → Documentos → Contrato
// status é definido dinamicamente no app a partir do passo atual
const STEPS = [
  { key: "visita",     icon: "spark",  title: "Boas-vindas",  sub: "Você chegou à ESUP — sua jornada começa aqui" },
  { key: "inscricao",  icon: "user",   title: "Inscrição",    sub: "Seus dados e a escolha do curso",
    endpoints: ["gravarCandidato", "gravarInscricaoProcessoSeletivo"] },
  { key: "prova",      icon: "pencil", title: "Prova",        sub: "Avaliação no portal de provas da ESUP",
    endpoints: ["provaProcessoSeletivo (site atual)"] },
  { key: "resultado",  icon: "trophy", title: "Resultado",    sub: "Veja se você foi aprovado(a)",
    endpoints: ["consultarConfigGeral", "resultadoProcessoSeletivo"] },
  { key: "matricula",  icon: "grad",   title: "Matrícula",    sub: "Garanta sua vaga após a aprovação",
    endpoints: ["matricularAluno"] },
  { key: "documentos", icon: "doc",    title: "Documentos",   sub: "Envie seus documentos para a matrícula",
    endpoints: ["gravarDocumentacaoMatriculaEspecifico", "realizarUploadArquivo"] },
  { key: "contrato",   icon: "doc",    title: "Contrato",     sub: "Assinatura digital do contrato",
    endpoints: ["gerarContratoMatricularAluno", "registrarAssinaturaContratoPorAluno"] },
  { key: "pronto",     icon: "seal",   title: "Tudo pronto!", sub: "Bem-vindo(a) à ESUP 🎓" },
];

// Cursos REAIS do processo seletivo (unidade 64 / processo 68) — fonte: SEI
// Em produção vêm de SEIAdapter.listarCursos(). codigo = unidadeEnsinoCurso.codigo
const CURSOS = [
  { id: "403", nome: "Administração", turno: "Matutino", vagas: 20 },
  { id: "404", nome: "Administração", turno: "Noturno", vagas: 30 },
  { id: "405", nome: "Ciências Contábeis", turno: "Matutino", vagas: 20 },
  { id: "406", nome: "Ciências Contábeis", turno: "Noturno", vagas: 30 },
  { id: "407", nome: "Direito", turno: "Matutino", vagas: 25 },
  { id: "408", nome: "Direito", turno: "Noturno", vagas: 25 },
  { id: "409", nome: "Sistemas de Informação", turno: "Matutino", vagas: 20 },
  { id: "410", nome: "Sistemas de Informação", turno: "Noturno", vagas: 20 },
  // TODO: confirmar códigos reais no SEI (semipresencial/EAD em outro polo)
  { id: "411", nome: "Pedagogia", turno: "Semipresencial", vagas: 40 },
  { id: "412", nome: "Processos Gerenciais", turno: "EAD", vagas: 40 },
];

// Cotas REAIS (endpoint cotaIngresso → selectComboBox). valor = enviado ao SEI
const COTAS = [
  { valor: "NENHUM", label: "Ampla concorrência" },
  { valor: "NEGRO", label: "Negro(a)" },
  { valor: "ESCOLA_PUBLICA", label: "Egresso de escola pública" },
  { valor: "INDIGENA", label: "Indígena" },
  { valor: "DEFICIENTE", label: "Pessoa com deficiência" },
];

// Estado civil — código (SEI) + label. Ex no SEI: "S"
const ESTADOS_CIVIS = [
  { v: "", l: "Selecione…" },
  { v: "S", l: "Solteiro(a)" },
  { v: "C", l: "Casado(a)" },
  { v: "D", l: "Divorciado(a)" },
  { v: "V", l: "Viúvo(a)" },
  { v: "U", l: "União estável" },
];

window.Icon = Icon;
window.COVERS = COVERS;
window.CURSOS_CHIPS = CURSOS_CHIPS;
window.CANDIDATO = CANDIDATO;
window.STEPS = STEPS;
window.CURSOS = CURSOS;
window.COTAS = COTAS;
window.ESTADOS_CIVIS = ESTADOS_CIVIS;
