import type { ShortcutDef } from '$lib/stores/shortcut-store';

export const obtenerAtajosListaFacturas = (acciones: {
    manejarCrear: () => void;
    manejarActualizar: () => void;
    manejarEditar: () => void;
    manejarDescargarPdf: () => void;
    manejarDescargarConsolidado: () => void;
    /** Foco en la primera fila de datos del listado (teclado) */
    irATabla: () => void;
    /** Foco en la barra fija de acciones */
    irAAcciones: () => void;
    abrirMenuReportes: () => void;
    abrirMenuMasAcciones: () => void;
    footerProcesar: () => void;
    footerDesactualizar: () => void;
    footerVerDetalles: () => void;
    footerInterfaceAgenteAduanal: () => void;
    footerEliminar: () => void;
    // Filtros de navegación
    irTemporal: () => void;
    irDefinitiva: () => void;
    irNacional: () => void;
    irCambioRegimen: () => void;
    irExportacion: () => void;
    irReparacion: () => void;
}): ShortcutDef[] => [
        { key: 'Alt+V', description: 'Ver Temporales', action: acciones.irTemporal },
        { key: 'Alt+F', description: 'Ver Definitivas', action: acciones.irDefinitiva },
        { key: 'Alt+Q', description: 'Ver Nacionales', action: acciones.irNacional },
        { key: 'Alt+Z', description: 'Ver Cambio Régimen', action: acciones.irCambioRegimen },
        { key: 'Alt+L', description: 'Ver Exportaciones', action: acciones.irExportacion },
        { key: 'Alt+Y', description: 'Ver Reparaciones', action: acciones.irReparacion },
        {
            key: 'Alt+Shift+N',
            description: 'Nueva Factura',
            action: acciones.manejarCrear
        },
        {
            key: 'Alt+Shift+R',
            description: 'Actualizar Lista',
            action: acciones.manejarActualizar
        },
        {
            key: 'Alt+Shift+E',
            description: 'Editar Seleccionada',
            action: acciones.manejarEditar
        },
        {
            key: 'Alt+Shift+P',
            description: 'Descargar PDF',
            action: acciones.manejarDescargarPdf
        },
        {
            key: 'Alt+Shift+C',
            description: 'Descargar Consolidado',
            action: acciones.manejarDescargarConsolidado
        },
        {
            key: 'Alt+Shift+T',
            description: 'Ir a tabla de facturas',
            action: acciones.irATabla,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+A',
            description: 'Ir a acciones (barra inferior)',
            action: acciones.irAAcciones,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+G',
            description: 'Reportes (abrir menú)',
            action: acciones.abrirMenuReportes,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+M',
            description: 'Más acciones (abrir menú)',
            action: acciones.abrirMenuMasAcciones,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+U',
            description: 'Procesar factura (barra inferior)',
            action: acciones.footerProcesar,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+W',
            description: 'Desactualizar factura',
            action: acciones.footerDesactualizar,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+D',
            description: 'Ver detalles',
            action: acciones.footerVerDetalles,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+I',
            description: 'Interface Agente Aduanal',
            action: acciones.footerInterfaceAgenteAduanal,
            skipDefaultFocusAfter: true
        },
        {
            key: 'Alt+Shift+X',
            description: 'Eliminar seleccionadas',
            action: acciones.footerEliminar,
            skipDefaultFocusAfter: true
        }
    ];
