/**
 * Test fixtures: Usuarios y datos de prueba
 */
export const TEST_USERS = {
  admin: {
    username: 'admin',
    password: process.env.E2E_ADMIN_PASSWORD || '',
    role: 'ADMIN',
  },
  user: {
    username: 'usuario',
    password: process.env.E2E_USER_PASSWORD || '',
    role: 'USER',
  },
};

export const TEST_DATA = {
  backorder: {
    cliente: '1',
    producto: 'PLU001',
    cantidad: '10',
  },
  reporte: {
    fechaInicio: '2026-01-01',
    fechaFin: '2026-04-14',
  },
};

export const ROUTES = {
  login: 'login',
  backorder: 'backorder',
  procesos: 'procesos',
  install: 'procesos/install',
  reporte: 'reporte',
};

/**
 * Todas las rutas navegables del bundle, organizadas por módulo.
 * Excluye: reportes, endpoints API/AJAX, rutas con parámetros obligatorios.
 * Usadas por smoke.spec.ts para cobertura completa.
 */
export interface RouteEntry {
  path: string;
  name: string;
  group: string;
}

export const ROUTE_GROUPS: RouteEntry[] = [
  // ── Core ─────────────────────────────────────────────────────────────────
  { path: '',          name: 'Home',          group: 'Core' },
  { path: 'dashboard', name: 'Dashboard',     group: 'Core' },
  { path: 'acercade',  name: 'Acerca de',     group: 'Core' },
  { path: 'ayuda',     name: 'Ayuda',         group: 'Core' },

  // ── Administración ───────────────────────────────────────────────────────
  { path: 'admin',                        name: 'Administración',          group: 'Administración' },
  { path: 'changelog',                    name: 'Changelog',               group: 'Administración' },
  { path: 'depurar',                      name: 'Depurar',                 group: 'Administración' },

  // ── Procesos ─────────────────────────────────────────────────────────────
  { path: 'procesos',         name: 'Procesos (listado)', group: 'Procesos' },
  { path: 'procesos/install', name: 'Install DB',         group: 'Procesos' },

  // ── Operaciones ──────────────────────────────────────────────────────────
  { path: 'backorder',          name: 'BackOrder',              group: 'Operaciones' },
  { path: 'doc',                name: 'Documentos',             group: 'Operaciones' },
  { path: 'documentosmaestro',  name: 'Documentos Maestro',     group: 'Operaciones' },
  { path: 'traslado',           name: 'Traslados',              group: 'Operaciones' },
  { path: 'trasladoentransito', name: 'Traslado en Tránsito',   group: 'Operaciones' },
  { path: 'manifiesto',         name: 'Manifiesto',             group: 'Operaciones' },
  { path: 'hoja',               name: 'Hoja de Ruta',          group: 'Operaciones' },

  // ── Inventario ───────────────────────────────────────────────────────────
  { path: 'fisico',                name: 'Inventario Físico',   group: 'Inventario' },
  { path: 'fisicoplantillamaestro', name: 'Plantillas Físico', group: 'Inventario' },
  { path: 'minimomaximo',          name: 'Mínimos y Máximos',  group: 'Inventario' },

  // ── Consultas ────────────────────────────────────────────────────────────
  { path: 'consultas',    name: 'Consultas',    group: 'Consultas' },
  { path: 'cuadrediario', name: 'Cuadre Diario', group: 'Consultas' },
  { path: 'cierres',      name: 'Cierres',       group: 'Consultas' },

  // ── Maestros de Producto ─────────────────────────────────────────────────
  { path: 'articulo',       name: 'Artículos',     group: 'Maestros Producto' },
  { path: 'linea',          name: 'Líneas',         group: 'Maestros Producto' },
  { path: 'marca',          name: 'Marcas',         group: 'Maestros Producto' },
  { path: 'variedad',       name: 'Variedades',     group: 'Maestros Producto' },
  { path: 'tamano',         name: 'Tamaños',        group: 'Maestros Producto' },
  { path: 'estilo',         name: 'Estilos',        group: 'Maestros Producto' },
  { path: 'unidad',         name: 'Unidades',       group: 'Maestros Producto' },
  { path: 'categoria',      name: 'Categorías',     group: 'Maestros Producto' },
  { path: 'fabricante',     name: 'Fabricantes',    group: 'Maestros Producto' },
  { path: 'maeindustria',   name: 'Industrias',     group: 'Maestros Producto' },
  { path: 'maeprocedencia', name: 'Procedencias',   group: 'Maestros Producto' },
  { path: 'oferta',         name: 'Ofertas',        group: 'Maestros Producto' },
  { path: 'tipo',           name: 'Tipos de Doc',   group: 'Maestros Producto' },
  { path: 'producto/index', name: 'Productos',      group: 'Maestros Producto' },

  // ── Maestros de Personas ─────────────────────────────────────────────────
  { path: 'maecli',     name: 'Clientes',    group: 'Maestros Personas' },
  { path: 'proveedor',  name: 'Proveedores', group: 'Maestros Personas' },
  { path: 'maeven',     name: 'Vendedores',  group: 'Maestros Personas' },
  { path: 'maeemi',     name: 'Emisores',    group: 'Maestros Personas' },
  { path: 'motorista',  name: 'Motoristas',  group: 'Maestros Personas' },
  { path: 'cocineros',  name: 'Cocineros',   group: 'Maestros Personas' },
  { path: 'usuario',    name: 'Usuarios',    group: 'Maestros Personas' },

  // ── Maestros de Tienda / Caja ────────────────────────────────────────────
  { path: 'maecaj',          name: 'Cajas',              group: 'Maestros Tienda' },
  { path: 'tienda',          name: 'Tiendas',             group: 'Maestros Tienda' },
  { path: 'cajacorrelativos', name: 'Caja Correlativos',  group: 'Maestros Tienda' },
  { path: 'opcion_caja',     name: 'Opciones de Caja',   group: 'Maestros Tienda' },
  { path: 'maeped',          name: 'Maestro Pedidos',     group: 'Maestros Tienda' },
  { path: 'movimiento',      name: 'Tipos de Movimiento', group: 'Maestros Tienda' },
  { path: 'departamento',    name: 'Departamentos',       group: 'Maestros Tienda' },
  { path: 'documento',       name: 'Tipos Documento',     group: 'Maestros Tienda' },
  { path: 'maemex',          name: 'Moneda Extranjera',   group: 'Maestros Tienda' },
  { path: 'maerutas',        name: 'Rutas',               group: 'Maestros Tienda' },

  // ── Financiero ───────────────────────────────────────────────────────────
  { path: 'formaspago',            name: 'Formas de Pago',        group: 'Financiero' },
  { path: 'cxc_asuetos',           name: 'CXC Asuetos',           group: 'Financiero' },
  { path: 'renovaciones',          name: 'Renovaciones',          group: 'Financiero' },
  { path: 'reparaciones',          name: 'Reparaciones',          group: 'Financiero' },
  { path: 'listaprecios',          name: 'Lista de Precios',       group: 'Financiero' },
  { path: 'listapreciosdetalle',   name: 'Detalle de Precios',     group: 'Financiero' },
  { path: 'listapreciosmayoreo',   name: 'Precios Mayoreo',        group: 'Financiero' },
  { path: 'limiteclientediascorte', name: 'Límite Días Corte',     group: 'Financiero' },

  // ── Producción ───────────────────────────────────────────────────────────
  { path: 'produccionmaestro',       name: 'Producción Maestro',      group: 'Producción' },
  { path: 'formulasvariablesmaestro', name: 'Fórmulas y Variables',   group: 'Producción' },
  { path: 'futuromaestro',           name: 'Futuro Maestro',          group: 'Producción' },
  { path: 'maerecipiente',           name: 'Recipientes',             group: 'Producción' },
  { path: 'maecup',                  name: 'Cupones',                 group: 'Producción' },

  // ── Parámetros ───────────────────────────────────────────────────────────
  { path: 'parametrosglobales',          name: 'Parámetros Globales',       group: 'Parámetros' },
  { path: 'parametrostienda',            name: 'Parámetros Tienda',          group: 'Parámetros' },
  { path: 'parametrosbackoffice',        name: 'Parámetros Backoffice',      group: 'Parámetros' },
  { path: 'parametrosimpresora',         name: 'Parámetros Impresora',       group: 'Parámetros' },
  { path: 'parametrosservir',            name: 'Parámetros Servir',          group: 'Parámetros' },
  { path: 'parametrosmaeemi',            name: 'Parámetros Emisor',          group: 'Parámetros' },
  { path: 'parametrosMaeemiCuotas',      name: 'Parámetros Cuotas',          group: 'Parámetros' },
  { path: 'parametros_pedidos_correo',   name: 'Parámetros Correo',          group: 'Parámetros' },
  { path: 'parametrosplantillamaestro',  name: 'Parámetros Plantilla',       group: 'Parámetros' },
  { path: 'parametrosComandasPapeleta',  name: 'Parámetros Comandas Papel.', group: 'Parámetros' },
  { path: 'parametrosComandasResumen',   name: 'Parámetros Comandas Res.',   group: 'Parámetros' },
  { path: 'parametrosImagenesCarrusel',  name: 'Imágenes Carrusel',          group: 'Parámetros' },

  // ── Touch / Display ──────────────────────────────────────────────────────
  { path: 'mapa',    name: 'Mapa Touch',     group: 'Touch/Display' },
  { path: 'touch',   name: 'Teclado Touch',  group: 'Touch/Display' },
  { path: 'Carrusel', name: 'Carrusel',      group: 'Touch/Display' },
  { path: 'display', name: 'Display Pedido', group: 'Touch/Display' },

  // ── Comunicaciones ───────────────────────────────────────────────────────
  { path: 'mensajitos',          name: 'Mensajitos',          group: 'Comunicaciones' },
  { path: 'mensajitostelefonos', name: 'Mensajitos Teléfonos', group: 'Comunicaciones' },
  { path: 'mensajitostipos',     name: 'Mensajitos Tipos',     group: 'Comunicaciones' },
  { path: 'fel_frases',          name: 'FEL Frases',           group: 'Comunicaciones' },

  // ── Misceláneos ──────────────────────────────────────────────────────────
  { path: 'tiquetes',               name: 'Tiquetes',              group: 'Misceláneos' },
  { path: 'videos',                 name: 'Videos',                group: 'Misceláneos' },
  { path: 'pedidosplantillamaestro', name: 'Pedidos Plantilla',    group: 'Misceláneos' },
  { path: 'maedoc',                 name: 'Maedoc',                group: 'Misceláneos' },
];
