/* MIRAI — Datos mock del INBOX en tiempo real (WhatsApp / Instagram)
 *
 * Este archivo está AISLADO a propósito: hoy devuelve conversaciones simuladas,
 * pero cuando exista backend de chats en vivo bastará con reemplazar
 * `dashGetInboxConversations(channel)` por un fetch / WebSocket que devuelva la
 * misma forma. Los componentes del inbox (dashboard-inbox.jsx) NO hardcodean
 * datos: leen siempre desde acá.
 *
 * Forma de cada conversación:
 *   {
 *     id, name, handle,            // handle = teléfono (WA) o @usuario (IG)
 *     avatar,                      // null -> se usan iniciales
 *     mode: "bot"|"waiting"|"agent",  // estado actual de la atención
 *     unread,                      // mensajes sin leer (badge)
 *     online,                      // punto verde de actividad
 *     lastTime,                    // hora del último mensaje (lista)
 *     messages: [ { from:"lead"|"emma"|"agent", text, time } ],
 *     lead: {                      // ficha del lead (panel derecho, fijo)
 *       intent, operation, zone, budget, propertyType, propertyOfInterest,
 *       status, broker, origin, createdAt, lastContact, tags[], notes,
 *       diagnosis                   // resumen generado por Emma, se copia con el botón "Copiar diagnóstico"
 *     }
 *   }
 *
 *   mode "bot"     -> Emma está respondiendo automáticamente
 *   mode "waiting" -> el cliente espera (sin resolver / esperando broker)
 *   mode "agent"   -> un asesor tomó el control (Emma pausada)
 */

// Brokers disponibles para "Asignar broker".
const DASH_BROKERS = ["Sin asignar", "Carolina Méndez", "Diego Sosa", "Valentina Ruiz", "Martín Aguilar"];

// ============ CONVERSACIONES MOCK ============
const DASH_INBOX = {
  whatsapp: [
    {
      id: "wa1",
      name: "Martín González",
      handle: "+54 9 11 2866 1164",
      avatar: null,
      mode: "agent",
      unread: 0,
      online: true,
      lastTime: "11:50",
      messages: [
        { from: "lead", time: "11:42", text: "Hola, vi un depto publicado en Nordelta. ¿Sigue disponible?" },
        { from: "emma", time: "11:42", text: "¡Hola Martín! Soy Emma, asistente de la inmobiliaria. Sí, tenemos opciones en Nordelta. ¿Buscás para comprar o alquilar?" },
        { from: "lead", time: "11:44", text: "Para comprar, 3 ambientes." },
        { from: "emma", time: "11:44", text: "Perfecto. ¿Tenés un presupuesto aproximado en mente?" },
        { from: "lead", time: "11:46", text: "Alrededor de USD 250.000, con ahorros." },
        { from: "lead", time: "11:47", text: "¿Podría coordinar una visita esta semana?" },
        { from: "agent", time: "11:50", text: "¡Hola Martín! Soy Carolina del equipo comercial. Con gusto coordinamos. ¿Qué día de esta semana te queda mejor para la visita?" },
      ],
      lead: {
        intent: "Comprar", operation: "Compra", zone: "Nordelta", budget: "USD 250.000",
        propertyType: "Departamento · 3 amb.", propertyOfInterest: "Depto Nordelta · ND-118",
        status: "talking", broker: "Carolina Méndez", origin: "WhatsApp Business",
        createdAt: "Hoy, 11:42", lastContact: "Hoy, 11:50", tags: ["Caliente", "Comprador"],
        notes: "Tiene los fondos disponibles. Quiere coordinar visita esta semana.",
        diagnosis: "Comprador caliente: depto de 3 amb. en Nordelta, USD 250.000 en ahorros. Derivado a Carolina Méndez para coordinar visita.",
      },
    },
    {
      id: "wa2",
      name: "Sofía Martínez",
      handle: "+54 9 11 4567 8910",
      avatar: null,
      mode: "bot",
      unread: 0,
      online: true,
      lastTime: "11:20",
      messages: [
        { from: "lead", time: "11:16", text: "Buenas! ¿Tienen departamentos en alquiler en Tigre?" },
        { from: "emma", time: "11:16", text: "¡Hola Sofía! Sí, tenemos varias opciones en Tigre. ¿De cuántos ambientes lo buscás?" },
        { from: "lead", time: "11:18", text: "2 ambientes, amoblado de ser posible." },
        { from: "emma", time: "11:18", text: "Perfecto. ¿Qué presupuesto mensual estás manejando?" },
        { from: "lead", time: "11:19", text: "Hasta USD 1.200" },
        { from: "emma", time: "11:20", text: "Genial, tengo 3 opciones que encajan. Te las paso ahora y vemos cuál te interesa para coordinar una visita 😊" },
      ],
      lead: {
        intent: "Alquilar", operation: "Alquiler", zone: "Tigre", budget: "USD 1.200 / mes",
        propertyType: "Departamento · 2 amb.", propertyOfInterest: "—",
        status: "emma", broker: "Sin asignar", origin: "Anuncio Facebook",
        createdAt: "Hoy, 11:16", lastContact: "Hoy, 11:20", tags: ["Alquiler", "Amoblado"],
        notes: "Necesita amoblado. Emma le está enviando opciones.",
        diagnosis: "Busca alquilar depto de 2 amb. amoblado en Tigre, hasta USD 1.200/mes. Emma le está enviando 3 opciones.",
      },
    },
    {
      id: "wa3",
      name: "Juan Pérez",
      handle: "+54 9 11 3322 5544",
      avatar: null,
      mode: "agent",
      unread: 0,
      online: false,
      lastTime: "10:55",
      messages: [
        { from: "lead", time: "10:40", text: "Hola, consulto por la casa código BNV-204 en Benavídez." },
        { from: "emma", time: "10:40", text: "¡Hola Juan! La propiedad BNV-204 está disponible. Tiene 220 m² cubiertos, 4 ambientes y jardín." },
        { from: "lead", time: "10:43", text: "¿Aceptan parte de pago con otra propiedad?" },
        { from: "emma", time: "10:43", text: "Es una excelente pregunta. Te derivo con un asesor para revisar las condiciones de permuta." },
        { from: "agent", time: "10:55", text: "Hola Juan, soy Carolina del equipo comercial. Sí, evaluamos permutas. ¿Qué propiedad tendrías para entregar?" },
      ],
      lead: {
        intent: "Comprar", operation: "Compra", zone: "Benavídez", budget: "USD 320.000",
        propertyType: "Casa · 4 amb.", propertyOfInterest: "Casa Benavídez · BNV-204",
        status: "manual", broker: "Carolina Méndez", origin: "Sitio web",
        createdAt: "Hoy, 10:40", lastContact: "Hoy, 10:55", tags: ["Permuta", "Comprador"],
        notes: "Consulta por permuta. Carolina tomó la conversación.",
        diagnosis: "Consulta por la casa BNV-204 en Benavídez, evalúa pagar con permuta. Derivado a Carolina Méndez para revisar condiciones.",
      },
    },
    {
      id: "wa4",
      name: "Lucía Fernández",
      handle: "+54 9 11 7788 1020",
      avatar: null,
      mode: "waiting",
      unread: 1,
      online: true,
      lastTime: "10:12",
      messages: [
        { from: "lead", time: "10:08", text: "Hola! Quiero tasar mi casa en San Isidro para venderla." },
        { from: "emma", time: "10:08", text: "¡Hola Lucía! Realizamos tasaciones sin cargo. ¿Cuántos ambientes tiene la propiedad?" },
        { from: "lead", time: "10:10", text: "5 ambientes, con pileta y quincho." },
        { from: "emma", time: "10:11", text: "Perfecto. ¿Me pasás la dirección aproximada para estimar el valor de zona?" },
        { from: "lead", time: "10:12", text: "Es sobre la calle Alsina al 800. ¿Cuándo podrían venir?" },
      ],
      lead: {
        intent: "Tasar / Vender", operation: "Venta", zone: "San Isidro", budget: "—",
        propertyType: "Casa · 5 amb.", propertyOfInterest: "—",
        status: "waiting", broker: "Sin asignar", origin: "Referido",
        createdAt: "Hoy, 10:08", lastContact: "Hoy, 10:12", tags: ["Venta", "Tasación"],
        notes: "Propiedad premium con pileta y quincho. Espera coordinar tasación.",
        diagnosis: "Quiere tasar su casa de 5 amb. con pileta y quincho en San Isidro. Espera que un broker coordine la visita de tasación.",
      },
    },
    {
      id: "wa5",
      name: "Pedro Ramírez",
      handle: "+54 9 11 6655 4433",
      avatar: null,
      mode: "bot",
      unread: 0,
      online: false,
      lastTime: "Ayer",
      messages: [
        { from: "lead", time: "21:30", text: "Buenas noches, ¿tienen locales comerciales en Pilar?" },
        { from: "emma", time: "21:30", text: "¡Hola Pedro! Sí, manejamos locales en Pilar. ¿Buscás para alquilar o comprar, y qué metraje aproximado necesitás?" },
        { from: "lead", time: "21:34", text: "Alquilar, unos 80 m² sobre avenida." },
        { from: "emma", time: "21:34", text: "Anotado. Mañana te envío las opciones disponibles sobre avenida en Pilar. ¡Que tengas buena noche! 🌙" },
      ],
      lead: {
        intent: "Alquilar", operation: "Alquiler", zone: "Pilar", budget: "USD 1.800 / mes",
        propertyType: "Local comercial · 80 m²", propertyOfInterest: "—",
        status: "emma", broker: "Sin asignar", origin: "WhatsApp Business",
        createdAt: "Ayer, 21:30", lastContact: "Ayer, 21:34", tags: ["Comercial"],
        notes: "Consulta fuera de horario. Emma quedó en enviar opciones.",
        diagnosis: "Busca alquilar local comercial de 80 m² en Pilar, hasta USD 1.800/mes. Emma le enviará opciones al día siguiente.",
      },
    },
  ],

  instagram: [
    {
      id: "ig1",
      name: "Camila Vera",
      handle: "@cami.vera",
      avatar: null,
      mode: "agent",
      unread: 0,
      online: true,
      lastTime: "12:08",
      messages: [
        { from: "lead", time: "11:58", text: "Holaa! Vi en su feed el depto de Puerto Madero 😍 ¿Sigue en venta?" },
        { from: "emma", time: "11:58", text: "¡Hola Camila! Sí, sigue disponible. Es un 3 ambientes con vista al río. ¿Lo buscás para vivir o como inversión?" },
        { from: "lead", time: "12:01", text: "Inversión. ¿Cuál es el valor?" },
        { from: "emma", time: "12:01", text: "Está publicado en USD 410.000. ¿Querés que te pase la ficha completa con fotos y expensas?" },
        { from: "lead", time: "12:04", text: "Sí dale!" },
        { from: "lead", time: "12:05", text: "Y si tienen algo similar más económico también 🙌" },
        { from: "agent", time: "12:08", text: "¡Hola Camila! Soy Valentina. Te paso ahora la ficha del de Puerto Madero y dos alternativas de inversión más accesibles 😊" },
      ],
      lead: {
        intent: "Comprar (inversión)", operation: "Compra", zone: "Puerto Madero", budget: "USD 410.000",
        propertyType: "Departamento · 3 amb.", propertyOfInterest: "Depto Puerto Madero · PM-302",
        status: "talking", broker: "Valentina Ruiz", origin: "Instagram Ads",
        createdAt: "Hoy, 11:58", lastContact: "Hoy, 12:08", tags: ["Inversión", "Caliente"],
        notes: "Inversora. Pide ficha completa y alternativas más económicas.",
        diagnosis: "Inversora: depto de 3 amb. en Puerto Madero, USD 410.000. Valentina Ruiz la asesora con ficha completa y alternativas.",
      },
    },
    {
      id: "ig2",
      name: "Tomás Aguirre",
      handle: "@tomi.aguirre",
      avatar: null,
      mode: "bot",
      unread: 0,
      online: true,
      lastTime: "11:40",
      messages: [
        { from: "lead", time: "11:35", text: "Buenas, ¿tienen phs en Villa Urquiza?" },
        { from: "emma", time: "11:35", text: "¡Hola Tomás! Sí, tenemos PHs en Villa Urquiza. ¿Cuántos ambientes y qué presupuesto manejás?" },
        { from: "lead", time: "11:38", text: "3 ambientes, hasta 180 mil dólares." },
        { from: "emma", time: "11:40", text: "Perfecto, tengo dos PHs que entran en ese rango, uno con patio. Te paso las fichas por acá 👇" },
      ],
      lead: {
        intent: "Comprar", operation: "Compra", zone: "Villa Urquiza", budget: "USD 180.000",
        propertyType: "PH · 3 amb.", propertyOfInterest: "PH Villa Urquiza",
        status: "emma", broker: "Sin asignar", origin: "Instagram DM",
        createdAt: "Hoy, 11:35", lastContact: "Hoy, 11:40", tags: ["Comprador"],
        notes: "Busca PH con patio. Emma enviando fichas.",
        diagnosis: "Busca comprar PH de 3 amb. con patio en Villa Urquiza, hasta USD 180.000. Emma le envía dos fichas.",
      },
    },
    {
      id: "ig3",
      name: "Florencia Ríos",
      handle: "@flor.rios",
      avatar: null,
      mode: "agent",
      unread: 0,
      online: false,
      lastTime: "11:02",
      messages: [
        { from: "lead", time: "10:50", text: "Hola! Me interesa el monoambiente de Palermo del último reel ✨" },
        { from: "emma", time: "10:50", text: "¡Hola Florencia! Genial, ese monoambiente está en alquiler a USD 600 + expensas. ¿Querés coordinar una visita?" },
        { from: "lead", time: "10:54", text: "Sí! Pero necesito saber si aceptan garantía de seguro de caución." },
        { from: "emma", time: "10:54", text: "Te derivo con una asesora para confirmar el tema de la garantía 😊" },
        { from: "agent", time: "11:02", text: "Hola Flor, soy Valentina. Sí, aceptamos seguro de caución. ¿Te gustaría ver el monoambiente mañana a la tarde?" },
      ],
      lead: {
        intent: "Alquilar", operation: "Alquiler", zone: "Palermo", budget: "USD 600 / mes",
        propertyType: "Monoambiente", propertyOfInterest: "Monoambiente Palermo · PA-77",
        status: "manual", broker: "Valentina Ruiz", origin: "Reel Palermo",
        createdAt: "Hoy, 10:50", lastContact: "Hoy, 11:02", tags: ["Alquiler", "Caución"],
        notes: "Consulta por garantía. Valentina tomó la conversación.",
        diagnosis: "Quiere alquilar el monoambiente de Palermo (USD 600/mes) y consultó por garantía de caución. Valentina Ruiz coordina la visita.",
      },
    },
    {
      id: "ig4",
      name: "Nicolás Brest",
      handle: "@nico.brest",
      avatar: null,
      mode: "waiting",
      unread: 1,
      online: true,
      lastTime: "10:25",
      messages: [
        { from: "lead", time: "10:20", text: "Hola, ¿asesoran para comprar terrenos en zona norte?" },
        { from: "emma", time: "10:20", text: "¡Hola Nicolás! Sí, trabajamos lotes en zona norte. ¿Tenés alguna localidad en mente?" },
        { from: "lead", time: "10:23", text: "Pilar o Escobar, para construir." },
        { from: "emma", time: "10:24", text: "Perfecto. ¿Qué superficie aproximada buscás y con qué presupuesto?" },
        { from: "lead", time: "10:25", text: "Unos 600 m², hasta 90 mil dólares" },
      ],
      lead: {
        intent: "Comprar terreno", operation: "Compra", zone: "Pilar / Escobar", budget: "USD 90.000",
        propertyType: "Lote · 600 m²", propertyOfInterest: "—",
        status: "waiting", broker: "Sin asignar", origin: "Instagram Ads",
        createdAt: "Hoy, 10:20", lastContact: "Hoy, 10:25", tags: ["Terreno", "Construcción"],
        notes: "Quiere lote para construir. Falta enviar opciones de countries.",
        diagnosis: "Busca lote de 600 m² en Pilar/Escobar para construir, hasta USD 90.000. Espera opciones de countries en esas zonas.",
      },
    },
    {
      id: "ig5",
      name: "Agustina Soto",
      handle: "@agus.soto",
      avatar: null,
      mode: "bot",
      unread: 0,
      online: false,
      lastTime: "Ayer",
      messages: [
        { from: "lead", time: "20:10", text: "Hola! Vi historias de casas en San Isidro 🏡 ¿Tienen con jardín?" },
        { from: "emma", time: "20:10", text: "¡Hola Agustina! Sí, tenemos varias casas con jardín en San Isidro. ¿Para comprar o alquilar?" },
        { from: "lead", time: "20:15", text: "Comprar, somos familia con 2 nenes." },
        { from: "emma", time: "20:15", text: "Qué lindo 🙌 Anoté que buscás casa familiar con jardín. Mañana te envío 3 opciones ideales para chicos. ¡Buenas noches!" },
      ],
      lead: {
        intent: "Comprar", operation: "Compra", zone: "San Isidro", budget: "USD 380.000",
        propertyType: "Casa · 4 amb.", propertyOfInterest: "—",
        status: "emma", broker: "Sin asignar", origin: "Historias IG",
        createdAt: "Ayer, 20:10", lastContact: "Ayer, 20:15", tags: ["Familia", "Jardín"],
        notes: "Familia con 2 hijos. Emma quedó en enviar casas con jardín.",
        diagnosis: "Familia con 2 hijos busca comprar casa de 4 amb. con jardín en San Isidro, USD 380.000. Emma le envía opciones.",
      },
    },
  ],
};

// Devuelve una COPIA profunda de las conversaciones del canal, para que el
// estado del inbox pueda mutarse (enviar mensajes, pausar bot) sin alterar el
// mock original. Reemplazar por fetch/WebSocket cuando exista backend en vivo.
function dashGetInboxConversations(channel) {
  const list = DASH_INBOX[channel] || [];
  return list.map((c) => ({
    ...c,
    messages: c.messages.map((m) => ({ ...m })),
    lead: { ...c.lead, tags: [...(c.lead.tags || [])] },
  }));
}

Object.assign(window, { DASH_INBOX, DASH_BROKERS, dashGetInboxConversations });
