// Data layer — loads the three taxonomies from /data after the user passes the upload gate.
// IMPORTANT: All user-facing copy says "Diagnósticos / Objetivos / Intervenciones de enfermería".
// We don't ship the proprietary taxonomy names anywhere in copy.

const DATA = { dxs: null, objs: null, ints: null, relations: null, loaded: false };

async function loadAllData() {
  if (DATA.loaded) return DATA;
  const [dxs, objs, ints, relations] = await Promise.all([
    fetch('data/diagnosticos.json').then(r => r.json()),
    fetch('data/objetivos.json').then(r => r.json()),
    fetch('data/intervenciones.json').then(r => r.json()),
    fetch('data/relations.json').then(r => r.json()),
  ]);
  DATA.dxs = dxs;
  DATA.objs = objs;
  DATA.ints = ints;
  DATA.relations = relations;
  // Build code → item indexes for fast lookup
  DATA.objByCode = new Map(objs.items.map(o => [o.codigo, o]));
  DATA.intByCode = new Map(ints.items.map(i => [i.codigo, i]));
  DATA.dxByCode = new Map(dxs.items.map(d => [d.codigo, d]));
  DATA.loaded = true;
  return DATA;
}

// ─── CASOS (saved patient plans) — generic codes, no proprietary names ─────
const CASOS = [
  {
    id: 'c1',
    paciente: 'M.G. · 67 años',
    contexto: 'Posoperatorio de hemicolectomía · Día 2',
    status: 'active',
    statusLabel: 'Activo',
    actualizado: 'Hoy, 14:30',
    rels: [
      { kind: 'dx', code: '00132', label: 'Dolor agudo' },
      { kind: 'ob', code: '2102',  label: 'Nivel del dolor' },
      { kind: 'iv', code: '1400',  label: 'Manejo del dolor: agudo' },
    ]
  },
  {
    id: 'c2',
    paciente: 'J.R. · 52 años',
    contexto: 'EPOC reagudizado · UCI',
    status: 'active',
    statusLabel: 'Activo',
    actualizado: 'Ayer, 21:08',
    rels: [
      { kind: 'dx', code: '00031', label: 'Limpieza ineficaz de vías aéreas' },
      { kind: 'ob', code: '0410',  label: 'Permeabilidad vías respiratorias' },
      { kind: 'iv', code: '3140',  label: 'Manejo de las vías aéreas' },
    ]
  },
  {
    id: 'c3',
    paciente: 'A.L. · 78 años',
    contexto: 'Inmovilización prolongada · Hogar de cuidados',
    status: 'draft',
    statusLabel: 'Borrador',
    actualizado: 'Hace 3 d',
    rels: [
      { kind: 'dx', code: '00046', label: 'Deterioro integridad cutánea' },
      { kind: 'ob', code: '1101',  label: 'Integridad tisular' },
      { kind: 'iv', code: '3590',  label: 'Vigilancia de la piel' },
    ]
  },
  {
    id: 'c4',
    paciente: 'C.M. · 34 años',
    contexto: 'Ansiedad preoperatoria',
    status: 'archived',
    statusLabel: 'Archivado',
    actualizado: 'Hace 2 sem',
    rels: [
      { kind: 'dx', code: '00146', label: 'Ansiedad' },
      { kind: 'ob', code: '1402',  label: 'Autocontrol de la ansiedad' },
      { kind: 'iv', code: '5820',  label: 'Disminución de la ansiedad' },
    ]
  },
];

// ─── CREADOR ───────────────────────────────────────────────
// Único creador del proyecto.
const CREATORS = [
  {
    photo: 'assets/salvador-canela.jpg',
    name: 'Salvador Canela',
    role: 'Creador único · Enfermería',
    bio: 'Enfermero y desarrollador de Cynamonurs. Creó la herramienta para reducir el tiempo de búsqueda y relación entre las tres taxonomías, y así devolverle minutos al cuidado del paciente.',
    // Usa SOCIAL.personal (abajo) para sus enlaces. Deja "" para mostrar el icono sin enlace.
    social: 'personal',
  },
];

// ─── REDES SOCIALES ────────────────────────────────────────
// Para ACTIVAR un enlace, pega la URL completa entre las comillas.
//   ej:  instagram: 'https://instagram.com/cynamonurs'
// Deja "" (vacío) y el icono se mostrará igual, listo para configurar más adelante.
const SOCIAL = {
  // Redes de la EMPRESA Cynamonurs → aparecen en Contacto y el pie de página.
  empresa: {
    instagram: '',
    tiktok:    '',
    youtube:   '',
    facebook:  '',
    linkedin:  '',
  },
  // Redes PERSONALES de Salvador → aparecen en su tarjeta de creador.
  personal: {
    instagram: '',
    tiktok:    '',
    youtube:   '',
    facebook:  '',
    linkedin:  '',
  },
};

// Datos de contacto editables en un solo lugar.
const CONTACTO = {
  email:   'cynamonurs@gmail.com',
  ciudad:  'Chetumal, Quintana Roo · México',
  appName: 'Cynamonurs',
};

// ─── EDICIONES SOPORTADAS ──────────────────────────────────
// ⚠️ CONFIRMAR: edita aquí la edición/año EXACTO de cada taxonomía que soporta la app.
// Estos valores se muestran en la web, en Términos y Condiciones y en el explorador.
const EDITIONS = {
  nanda: {
    sigla: 'NANDA-I',
    nombre: 'Diagnósticos de enfermería',
    edicion: 'NANDA-I 2021–2023, 12.ª edición',
    detalle: '12.ª edición · 2021–2023',
    items: 263,
  },
  noc: {
    sigla: 'NOC',
    nombre: 'Clasificación de Resultados de Enfermería',
    edicion: 'NOC, 7.ª edición (2024)',
    detalle: '7.ª edición · 2024',
    items: 610,
  },
  nic: {
    sigla: 'NIC',
    nombre: 'Clasificación de Intervenciones de Enfermería',
    edicion: 'NIC, 8.ª edición (2024)',
    detalle: '8.ª edición · 2024',
    items: 614,
  },
};

// ─── ESCALAS (image-based, from clinical sources) ──────────
const ESCALAS = [
  { id: 'apgar',     name: 'Escala de APGAR',                          desc: 'Recién nacido al 1.° y 5.° minuto', img: 'assets/scales/apgar.png',
    rangos: '8–10 normal · 4–7 depresión moderada · 0–3 depresión grave' },
  { id: 'silverman', name: 'Silverman–Andersen',                       desc: 'Dificultad respiratoria del RN',     img: 'assets/scales/silverman.png',
    rangos: '0 sin dificultad · 1–3 leve · 4–6 moderada · 7–10 grave' },
  { id: 'pipp',      name: 'Escala PIPP del dolor en neonatos',        desc: 'Perfil del dolor en prematuros',     img: 'assets/scales/dolor-neonatos.png',
    rangos: '≤6 dolor leve · 7–12 moderado · ≥13 intenso' },
  { id: 'braden-a',  name: 'Braden — riesgo de úlceras por presión',   desc: 'Adultos',                            img: 'assets/scales/braden-adultos.png',
    rangos: '<12 alto · 13–14 moderado · 15–16 bajo · >16 sin riesgo' },
  { id: 'braden-p',  name: 'Braden adaptada — visual',                 desc: 'Versión gráfica para enfermería',    img: 'assets/scales/braden-pediatrica.png',
    rangos: '<12 alto · 13–14 moderado · 15–16 bajo · >16 sin riesgo' },
  { id: 'glasgow-p', name: 'Glasgow pediátrica',                       desc: 'Nivel de consciencia por edad',      img: 'assets/scales/glasgow-pediatrica.png',
    rangos: '14–15 leve · 9–13 moderada · <9 grave' },
];

Object.assign(window, { loadAllData, DATA, CASOS, CREATORS, ESCALAS, SOCIAL, CONTACTO, EDITIONS });
