<?php
/**
 * ASISMA CRM - Definición de Rutas del Sistema
 * Estructura: 'ruta' => ['controller' => 'NombreController', 'action' => 'metodo', 'auth' => true/false, 'permiso' => 'modulo', 'methods' => ['GET', 'POST']]
 */

return [
    // ---------------- AUTH ----------------
    'login' => [
        'controller' => 'AuthController',
        'action' => 'login',
        'auth' => false,
        'methods' => ['GET']
    ],
    'authenticate' => [
        'controller' => 'AuthController',
        'action' => 'authenticate',
        'auth' => false,
        'methods' => ['POST']
    ],
    'logout' => [
        'controller' => 'AuthController',
        'action' => 'logout',
        'auth' => true,
        'methods' => ['GET', 'POST']
    ],
    'password/olvide' => [
        'controller' => 'AuthController',
        'action' => 'olvidePassword',
        'auth' => false,
        'methods' => ['GET']
    ],
    'password/enviar' => [
        'controller' => 'AuthController',
        'action' => 'enviarReset',
        'auth' => false,
        'methods' => ['POST']
    ],
    'password/restablecer' => [
        'controller' => 'AuthController',
        'action' => 'restablecerPassword',
        'auth' => false,
        'methods' => ['GET']
    ],
    'password/guardar' => [
        'controller' => 'AuthController',
        'action' => 'guardarPassword',
        'auth' => false,
        'methods' => ['POST']
    ],

    // ---------------- DASHBOARD ----------------
    'dashboard' => [
        'controller' => 'DashboardController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'dashboard',
        'methods' => ['GET']
    ],

    // ---------------- LEADS ----------------
    'leads' => [
        'controller' => 'LeadsController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/tablero' => [
        'controller' => 'LeadsController',
        'action' => 'tablero',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/crear' => [
        'controller' => 'LeadsController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET', 'POST']
    ],
    'leads/buscar-rut' => [
        'controller' => 'LeadsController',
        'action' => 'buscarPorRut',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/notificacion-pendiente' => [
        'controller' => 'LeadsController',
        'action' => 'notificacionPendiente',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/api-documentacion' => [
        'controller' => 'LeadsController',
        'action' => 'documentacionApi',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/ver' => [
        'controller' => 'LeadsController',
        'action' => 'ver',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET']
    ],
    'leads/editar' => [
        'controller' => 'LeadsController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['GET', 'POST']
    ],
    'leads/cambiar-estado' => [
        'controller' => 'LeadsController',
        'action' => 'cambiarEstado',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['POST']
    ],
    'leads/guardar-nota' => [
        'controller' => 'LeadsController',
        'action' => 'guardarNota',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['POST']
    ],
    'leads/asignar' => [
        'controller' => 'LeadsController',
        'action' => 'asignarManual',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['POST']
    ],
    'leads/reasignar-franquiciado' => [
        'controller' => 'LeadsController',
        'action' => 'reasignarFranquiciado',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['POST']
    ],
    'leads/liberar-datos' => [
        'controller' => 'LeadsController',
        'action' => 'liberarDatos',
        'auth' => true,
        'permiso' => 'leads',
        'methods' => ['POST']
    ],

    // ---------------- COLA DE ASIGNACIÓN ----------------
    'franquiciados/cola' => [
        'controller' => 'FranquiciadosController',
        'action' => 'colaIndex',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'franquiciados/cola/guardar' => [
        'controller' => 'FranquiciadosController',
        'action' => 'colaGuardar',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],

    // ---------------- EMPRESAS CRUD ----------------
    'empresas/crear' => [
        'controller' => 'EmpresasController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'empresas',
        'methods' => ['POST']
    ],
    'empresas/editar' => [
        'controller' => 'EmpresasController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'empresas',
        'methods' => ['POST']
    ],
    'empresas/toggle' => [
        'controller' => 'EmpresasController',
        'action' => 'toggleActivo',
        'auth' => true,
        'permiso' => 'empresas',
        'methods' => ['POST']
    ],
    'empresas/data' => [
        'controller' => 'EmpresasController',
        'action' => 'getData',
        'auth' => true,
        'permiso' => 'empresas',
        'methods' => ['GET']
    ],

    // ---------------- CONTACTOS CRUD ----------------
    'contactos/crear' => [
        'controller' => 'ContactosController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'contactos',
        'methods' => ['POST']
    ],
    'contactos/editar' => [
        'controller' => 'ContactosController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'contactos',
        'methods' => ['POST']
    ],
    'contactos/toggle' => [
        'controller' => 'ContactosController',
        'action' => 'toggleActivo',
        'auth' => true,
        'permiso' => 'contactos',
        'methods' => ['POST']
    ],
    'contactos/data' => [
        'controller' => 'ContactosController',
        'action' => 'getData',
        'auth' => true,
        'permiso' => 'contactos',
        'methods' => ['GET']
    ],

    // ---------------- CATALOGOS (Verticales, Marcas, Productos) ----------------
    'verticales' => [
        'controller' => 'CatalogoController',
        'action' => 'verticalesIndex',
        'auth' => true,
        'permiso' => 'verticales',
        'methods' => ['GET']
    ],
    'marcas' => [
        'controller' => 'CatalogoController',
        'action' => 'marcasIndex',
        'auth' => true,
        'permiso' => 'marcas',
        'methods' => ['GET']
    ],
    'productos' => [
        'controller' => 'CatalogoController',
        'action' => 'productosIndex',
        'auth' => true,
        'permiso' => 'productos',
        'methods' => ['GET']
    ],

    'verticales/crear' => [
        'controller' => 'CatalogoController',
        'action'     => 'verticalesCrear',
        'auth'       => true,
        'permiso'    => 'verticales',
        'methods'    => ['POST']
    ],
    'verticales/editar' => [
        'controller' => 'CatalogoController',
        'action'     => 'verticalesEditar',
        'auth'       => true,
        'permiso'    => 'verticales',
        'methods'    => ['POST']
    ],
    'verticales/toggle' => [
        'controller' => 'CatalogoController',
        'action'     => 'verticalesToggle',
        'auth'       => true,
        'permiso'    => 'verticales',
        'methods'    => ['POST']
    ],
    'marcas/crear' => [
        'controller' => 'CatalogoController',
        'action'     => 'marcasCrear',
        'auth'       => true,
        'permiso'    => 'marcas',
        'methods'    => ['POST']
    ],
    'marcas/editar' => [
        'controller' => 'CatalogoController',
        'action'     => 'marcasEditar',
        'auth'       => true,
        'permiso'    => 'marcas',
        'methods'    => ['POST']
    ],
    'marcas/toggle' => [
        'controller' => 'CatalogoController',
        'action'     => 'marcasToggle',
        'auth'       => true,
        'permiso'    => 'marcas',
        'methods'    => ['POST']
    ],
    'productos/crear' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosCrear',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'productos/editar' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosEditar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'productos/toggle' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosToggle',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'productos/exportar' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosExportar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['GET']
    ],
    'productos/plantilla' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosPlantilla',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['GET']
    ],
    'productos/importar' => [
        'controller' => 'CatalogoController',
        'action'     => 'productosImportar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],

    // ── Servicios con planes: API del editor embebido en el maestro de
    //    PRODUCTOS (un servicio = un producto tipo servicio; solo superadmin) ──
    'servicios/detalle' => [
        'controller' => 'ServiciosController',
        'action'     => 'detalle',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['GET']
    ],
    'servicios/previsualizar' => [
        'controller' => 'ServiciosController',
        'action'     => 'previsualizar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/guardar' => [
        'controller' => 'ServiciosController',
        'action'     => 'guardar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/toggle' => [
        'controller' => 'ServiciosController',
        'action'     => 'toggle',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/plan/guardar' => [
        'controller' => 'ServiciosController',
        'action'     => 'planGuardar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/plan/toggle' => [
        'controller' => 'ServiciosController',
        'action'     => 'planToggle',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/caracteristica/guardar' => [
        'controller' => 'ServiciosController',
        'action'     => 'caracteristicaGuardar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/caracteristica/eliminar' => [
        'controller' => 'ServiciosController',
        'action'     => 'caracteristicaEliminar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/bono/guardar' => [
        'controller' => 'ServiciosController',
        'action'     => 'bonoGuardar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],
    'servicios/bono/eliminar' => [
        'controller' => 'ServiciosController',
        'action'     => 'bonoEliminar',
        'auth'       => true,
        'permiso'    => 'productos',
        'methods'    => ['POST']
    ],

    // ---------------- ORGANIZACION (Franquiciados, Usuarios, Regiones) ----------------
    'franquiciados' => [
        'controller' => 'FranquiciadosController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'franquiciados/crear' => [
        'controller' => 'FranquiciadosController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'franquiciados/editar' => [
        'controller' => 'FranquiciadosController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'franquiciados/toggle' => [
        'controller' => 'FranquiciadosController',
        'action' => 'toggleEstado',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'franquiciados/data' => [
        'controller' => 'FranquiciadosController',
        'action' => 'getData',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'franquiciados/marcas' => [
        'controller' => 'FranquiciadosController',
        'action' => 'marcasData',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'franquiciados/provisionar-ce' => [
        'controller' => 'FranquiciadosController',
        'action' => 'provisionarCE',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'franquiciados/marcas/guardar' => [
        'controller' => 'FranquiciadosController',
        'action' => 'marcasGuardar',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'rotacion' => [
        'controller' => 'RotacionController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'rotacion/datos' => [
        'controller' => 'RotacionController',
        'action' => 'datos',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['GET']
    ],
    'rotacion/ordenar-franquiciados' => [
        'controller' => 'RotacionController',
        'action' => 'ordenarFranquiciados',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'rotacion/ordenar-cola' => [
        'controller' => 'RotacionController',
        'action' => 'ordenarCola',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'franquiciados/sincronizar-comunas' => [
        'controller' => 'FranquiciadosController',
        'action' => 'sincronizarComunas',
        'auth' => true,
        'permiso' => 'franquiciados',
        'methods' => ['POST']
    ],
    'usuarios' => [
        'controller' => 'UsuariosController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['GET']
    ],
    'usuarios/crear' => [
        'controller' => 'UsuariosController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['POST']
    ],
    'usuarios/editar' => [
        'controller' => 'UsuariosController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['POST']
    ],
    'usuarios/toggle' => [
        'controller' => 'UsuariosController',
        'action' => 'toggleActivo',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['POST']
    ],
    'usuarios/reset-password' => [
        'controller' => 'UsuariosController',
        'action' => 'resetPassword',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['POST']
    ],
    'usuarios/data' => [
        'controller' => 'UsuariosController',
        'action' => 'getData',
        'auth' => true,
        'permiso' => 'usuarios',
        'methods' => ['GET']
    ],
    'regiones' => [
        'controller' => 'RegionesController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'regiones',
        'methods' => ['GET']
    ],
    'regiones/crear' => [
        'controller' => 'RegionesController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'regiones',
        'methods' => ['POST']
    ],
    'regiones/editar' => [
        'controller' => 'RegionesController',
        'action' => 'editar',
        'auth' => true,
        'permiso' => 'regiones',
        'methods' => ['POST']
    ],
    'regiones/toggle' => [
        'controller' => 'RegionesController',
        'action' => 'toggleActiva',
        'auth' => true,
        'permiso' => 'regiones',
        'methods' => ['POST']
    ],

    // ---------------- CLIENTES (Empresas, Contactos) ----------------
    'empresas' => [
        'controller' => 'EmpresasController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'empresas',
        'methods' => ['GET']
    ],
    'contactos' => [
        'controller' => 'ContactosController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'contactos',
        'methods' => ['GET']
    ],

    // ---------------- COTIZACIONES ----------------
    'cotizaciones' => [
        'controller' => 'CotizacionesController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['GET']
    ],
    'cotizaciones/crear' => [
        'controller' => 'CotizacionesController',
        'action' => 'crear',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['GET', 'POST']
    ],
    'cotizaciones/previsualizar-servicio' => [
        'controller' => 'CotizacionesController',
        'action' => 'previsualizarServicio',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['POST']
    ],
    'cotizaciones/previsualizar-producto' => [
        'controller' => 'CotizacionesController',
        'action' => 'previsualizarProducto',
        'auth' => true,
        'permiso' => 'productos',
        'methods' => ['POST']
    ],
    'cotizaciones/ver' => [
        'controller' => 'CotizacionesController',
        'action' => 'ver',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['GET']
    ],
    'cotizaciones/publica' => [
        'controller' => 'CotizacionesController',
        'action' => 'verPublica',
        'auth' => false,
        'methods' => ['GET']
    ],
    'cotizaciones/pagar' => [
        'controller' => 'CotizacionesController',
        'action' => 'pagar',
        'auth' => false,
        'methods' => ['GET']
    ],
    'cotizaciones/generar-documento-ce' => [
        'controller' => 'CotizacionesController',
        'action' => 'generarDocumentoCE',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['POST']
    ],
    'cotizaciones/marcar-pagada' => [
        'controller' => 'CotizacionesController',
        'action' => 'marcarPagada',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['POST']
    ],
    'cotizaciones/enviar' => [
        'controller' => 'CotizacionesController',
        'action' => 'enviar',
        'auth' => true,
        'permiso' => 'cotizaciones',
        'methods' => ['POST']
    ],
    'api/flow/confirmacion' => [
        'controller' => 'CotizacionesController',
        'action' => 'flowConfirmacion',
        'auth' => false,
        'methods' => ['POST']
    ],

    // ---------------- COMUNICACIONES (WhatsApp) ----------------
    'whatsapp' => [
        'controller' => 'WhatsAppController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET']
    ],
    'whatsapp/chat' => [
        'controller' => 'WhatsAppController',
        'action' => 'chat',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET']
    ],
    'whatsapp/enviar' => [
        'controller' => 'WhatsAppController',
        'action' => 'enviarMensaje',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/media' => [
        'controller' => 'WhatsAppController',
        'action' => 'media',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET']
    ],
    'whatsapp/instancias' => [
        'controller' => 'WhatsAppController',
        'action' => 'instancias',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET']
    ],
    'whatsapp/instancias/guardar' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaGuardar',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/instancias/toggle' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaToggle',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/instancias/estado' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaEstado',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET', 'POST']
    ],
    'whatsapp/mensaje-eliminar' => [
        'controller' => 'WhatsAppController',
        'action' => 'mensajeEliminar',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/instancias/crear-auto' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaCrearAuto',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/instancias/qr' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaQr',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['GET']
    ],
    'whatsapp/instancias/logout' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaLogout',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],
    'whatsapp/instancias/eliminar' => [
        'controller' => 'WhatsAppController',
        'action' => 'instanciaEliminar',
        'auth' => true,
        'permiso' => 'whatsapp',
        'methods' => ['POST']
    ],

    // Webhook público de Evolution API (sin sesión)
    'api/whatsapp/webhook' => [
        'controller' => 'WhatsAppController',
        'action' => 'webhook',
        'auth' => false,
        'methods' => ['POST']
    ],

    // API pública de captación de leads (autenticada por API key)
    'api/leads' => [
        'controller' => 'ApiController',
        'action' => 'capturarLead',
        'auth' => false,
        'methods' => ['POST']
    ],

    // ---------------- OPERACIONES (Post-Venta / Marcas) ----------------
    'operaciones' => [
        'controller' => 'OperacionesController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'operaciones',
        'methods' => ['GET']
    ],
    'operaciones/actualizar' => [
        'controller' => 'OperacionesController',
        'action' => 'actualizarEstado',
        'auth' => true,
        'permiso' => 'operaciones',
        'methods' => ['POST']
    ],

    // ---------------- REPORTES Y CONFIGURACION ----------------
    'reportes' => [
        'controller' => 'ReportesController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'reportes',
        'methods' => ['GET']
    ],
    'reportes/export' => [
        'controller' => 'ReportesController',
        'action' => 'exportLeads',
        'auth' => true,
        'permiso' => 'reportes',
        'methods' => ['GET']
    ],
    'cobros' => [
        'controller' => 'CobrosController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'cobros',
        'methods' => ['GET']
    ],
    'configuracion' => [
        'controller' => 'ConfiguracionController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'configuracion',
        'methods' => ['GET', 'POST']
    ],
    'auditoria' => [
        'controller' => 'AuditoriaController',
        'action' => 'index',
        'auth' => true,
        'permiso' => 'auditoria',
        'methods' => ['GET']
    ]
];
