<?php

use CodeIgniter\Router\RouteCollection;
use Config\Services;



use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use Microsoft\Graph\Core\Authentication\GraphPhpLeagueAuthenticationProvider;

/**
 * @var RouteCollection $routes
 */

// Create a new instance of our RouteCollection class.
$routes = Services::routes();

/*
 * --------------------------------------------------------------------
 * Router Setup
 * --------------------------------------------------------------------
 */
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('HomeController');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();

$routes->get('/', 'HomeController::index');
$routes->get('archivo/ver', 'GenericController::verArchivo');
$routes->get('archivo/descargar', 'GenericController::descargarArchivo');

$routes->group('', ['filter' => 'cifilter:guest'], static function ($routes) {
    $routes->get('/login', 'AuthController::login', ['as' => 'auth.login']);

    $routes->get('/postulante/registrar', 'AuthController::postulante');
    $routes->post('/postulante/registrar', 'AuthController::postulanteRegistrar', ['as' => 'postulante.registrar']);

    $routes->get('/usuario/confirmar', 'AuthController::confirmar');

    $routes->get('/empresa/registrar', 'AuthController::empresa');
    $routes->post('/empresa/registrar', 'AuthController::empresaRegistrar', ['as' => 'empresa.registrar']);

    $routes->post('/login', 'AuthController::loginHandler', ['as' => 'auth.login.handler']);

    $routes->group('virtual', static function ($routes) {
        $routes->get('mesa_partes', 'Virtual\MesaPartesVirtualController::index');
        $routes->get('estado_expediente', 'Virtual\MesaPartesVirtualController::estado_expediente');
    });
});

$routes->group('', ['filter' => 'cifilter:auth'], static function ($routes) {
    $routes->get('/logout', 'AuthController::logoutHandler', ['as' => 'admin.logout']);
    $routes->get('/home', 'HomeController::home', ['as' => 'home.modulo']);

    $routes->group('institucion', static function ($routes) {

        $routes->get('oficina', 'Administrar\OficinaController::index');
        $routes->post('oficina/guardar', 'Administrar\OficinaController::guardar', ['as' => 'oficina.guardar']);
        $routes->post('oficina/eliminar', 'Administrar\OficinaController::eliminar');
        $routes->get('oficina/buscar', 'Administrar\OficinaController::buscar');

        $routes->get('requisito', 'Administrar\RequisitoController::index');
        $routes->post('requisito/guardar', 'Administrar\RequisitoController::guardar', ['as' => 'requisito.guardar']);
        $routes->post('requisito/eliminar', 'Administrar\RequisitoController::eliminar');
        $routes->get('requisito/buscar', 'Administrar\RequisitoController::buscar');

        $routes->get('tupa', 'Administrar\TupaController::index');
        $routes->post('tupa/guardar', 'Administrar\TupaController::guardar', ['as' => 'tupa.guardar']);
        $routes->post('tupa/eliminar', 'Administrar\TupaController::eliminar');
        $routes->get('tupa/buscar', 'Administrar\TupaController::buscar');

        $routes->get('cargo', 'Administrar\CargoController::index');
        $routes->post('cargo/guardar', 'Administrar\CargoController::guardar', ['as' => 'cargo.guardar']);
        $routes->post('cargo/eliminar', 'Administrar\CargoController::eliminar');
        $routes->post('cargo/responsable', 'Administrar\CargoController::responsable');
        $routes->get('cargo/buscar', 'Administrar\CargoController::buscar', ['as' => 'cargo.buscar']);

        $routes->get('funcionario', 'Administrar\FuncionarioController::index');
        $routes->post('funcionario/guardar', 'Administrar\FuncionarioController::guardar', ['as' => 'funcionario.guardar']);
        $routes->post('funcionario/eliminar', 'Administrar\FuncionarioController::eliminar');
        $routes->get('funcionario/buscar', 'Administrar\FuncionarioController::buscar');

        $routes->get('estado_tramite', 'Administrar\EstadoTramiteController::index');
        $routes->post('estado_tramite/guardar', 'Administrar\EstadoTramiteController::guardar', ['as' => 'estado_tramite.guardar']);
        $routes->post('estado_tramite/eliminar', 'Administrar\EstadoTramiteController::eliminar');
        $routes->get('estado_tramite/buscar', 'Administrar\EstadoTramiteController::buscar', ['as' => 'estado_tramite.buscar']);
    });

    $routes->group('bolsatrabajo', static function ($routes) {
        $routes->get('empresa/perfil', 'Bolsatrabajo\Empresa\EmpresaPerfilController::index');
        $routes->post('empresa/perfil/guardar', 'Bolsatrabajo\Empresa\EmpresaPerfilController::guardarPerfil', ['as' => 'empresa_perfil.guardar']);

        $routes->get('convocatoria/convocatoria', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::index');
        $routes->post('convocatoria/guardar', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::guardar', ['as' => 'convocatoria.guardar']);
        $routes->post('convocatoria/eliminar', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::eliminar');
        $routes->get('convocatoria/buscar', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::buscar', ['as' => 'convocatoria.buscar']);

        $routes->post('convocatoria/comunicado/guardar', 'Bolsatrabajo\Convocatoria\ConvocatoriaComunicadoController::guardar', ['as' => 'comunicado.guardar']);
        $routes->post('convocatoria/comunicado/eliminar', 'Bolsatrabajo\Convocatoria\ConvocatoriaComunicadoController::eliminar');
        $routes->get('convocatoria/comunicado/buscar', 'Bolsatrabajo\Convocatoria\ConvocatoriaComunicadoController::buscar');

        $routes->get('postulante/perfil', 'Bolsatrabajo\Postulante\PostulantePerfilController::index');
        $routes->get('postulante/perfil/editar', 'Bolsatrabajo\Postulante\PostulantePerfilController::editar');
        $routes->post('postulante/perfil/guardar', 'Bolsatrabajo\Postulante\PostulantePerfilController::guardarPerfil', ['as' => 'postulante_perfil.guardar']);
        $routes->get('postulante/perfil/ver', 'Bolsatrabajo\Postulante\PostulantePerfilController::ver');

        $routes->post('postulante/formacion_academica/guardar', 'Bolsatrabajo\Postulante\PostulantePerfilController::guardarFormacionAcademica', ['as' => 'formacion_academica.guardar']);
        $routes->get('postulante/formacion_academica/buscar', 'Bolsatrabajo\Postulante\PostulantePerfilController::buscarFormacionAcademica');

        $routes->post('postulante/especializacion/guardar', 'Bolsatrabajo\Postulante\PostulantePerfilController::guardarEspecializacion', ['as' => 'especializacion.guardar']);
        $routes->get('postulante/especializacion/buscar', 'Bolsatrabajo\Postulante\PostulantePerfilController::buscarEspecializacion');

        $routes->post('postulante/experiencia/guardar', 'Bolsatrabajo\Postulante\PostulantePerfilController::guardarExperiencia', ['as' => 'experiencia.guardar']);
        $routes->get('postulante/experiencia/buscar', 'Bolsatrabajo\Postulante\PostulantePerfilController::buscarExperiencia');

        $routes->get('convocatoria/detalle', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::detalle');
        $routes->post('convocatoria/postular', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::guardarPostulacion');
        $routes->post('convocatoria/finalizar', 'Bolsatrabajo\Convocatoria\ConvocatoriaController::finalizar');

        $routes->get('empresa_sector', 'Bolsatrabajo\Gestion\EmpresaSectorController::index');
        $routes->post('empresa_sector/guardar', 'Bolsatrabajo\Gestion\EmpresaSectorController::guardar', ['as' => 'empresa_sector.guardar']);
        $routes->post('empresa_sector/eliminar', 'Bolsatrabajo\Gestion\EmpresaSectorController::eliminar');
        $routes->get('empresa_sector/buscar', 'Bolsatrabajo\Gestion\EmpresaSectorController::buscar');

        $routes->get('empresa_tamanio', 'Bolsatrabajo\Gestion\EmpresaTamanioController::index');
        $routes->post('empresa_tamanio/guardar', 'Bolsatrabajo\Gestion\EmpresaTamanioController::guardar', ['as' => 'empresa_tamanio.guardar']);
        $routes->post('empresa_tamanio/eliminar', 'Bolsatrabajo\Gestion\EmpresaTamanioController::eliminar');
        $routes->get('empresa_tamanio/buscar', 'Bolsatrabajo\Gestion\EmpresaTamanioController::buscar');

        $routes->get('tipo_proceso', 'Bolsatrabajo\Gestion\TipoProcesoController::index');
        $routes->post('tipo_proceso/guardar', 'Bolsatrabajo\Gestion\TipoProcesoController::guardar', ['as' => 'tipo_proceso.guardar']);
        $routes->post('tipo_proceso/eliminar', 'Bolsatrabajo\Gestion\TipoProcesoController::eliminar');
        $routes->get('tipo_proceso/buscar', 'Bolsatrabajo\Gestion\TipoProcesoController::buscar');


        $routes->get('tipo_trabajo', 'Bolsatrabajo\Gestion\TipoTrabajoController::index');
        $routes->post('tipo_trabajo/guardar', 'Bolsatrabajo\Gestion\TipoTrabajoController::guardar', ['as' => 'tipo_trabajo.guardar']);
        $routes->post('tipo_trabajo/eliminar', 'Bolsatrabajo\Gestion\TipoTrabajoController::eliminar');
        $routes->get('tipo_trabajo/buscar', 'Bolsatrabajo\Gestion\TipoTrabajoController::buscar');

        $routes->get('grado_academico', 'Bolsatrabajo\Gestion\GradoAcademicoController::index');
        $routes->post('grado_academico/guardar', 'Bolsatrabajo\Gestion\GradoAcademicoController::guardar', ['as' => 'grado_academico.guardar']);
        $routes->post('grado_academico/eliminar', 'Bolsatrabajo\Gestion\GradoAcademicoController::eliminar');
        $routes->get('grado_academico/buscar', 'Bolsatrabajo\Gestion\GradoAcademicoController::buscar');

        $routes->get('tipo_estudio', 'Bolsatrabajo\Gestion\TipoEstudioController::index');
        $routes->post('tipo_estudio/guardar', 'Bolsatrabajo\Gestion\TipoEstudioController::guardar', ['as' => 'tipo_estudio.guardar']);
        $routes->post('tipo_estudio/eliminar', 'Bolsatrabajo\Gestion\TipoEstudioController::eliminar');
        $routes->get('tipo_estudio/buscar', 'Bolsatrabajo\Gestion\TipoEstudioController::buscar');

        $routes->get('tipo_experiencia', 'Bolsatrabajo\Gestion\TipoExperienciaController::index');
        $routes->post('tipo_experiencia/guardar', 'Bolsatrabajo\Gestion\TipoExperienciaController::guardar', ['as' => 'tipo_experiencia.guardar']);
        $routes->post('tipo_experiencia/eliminar', 'Bolsatrabajo\Gestion\TipoExperienciaController::eliminar');
        $routes->get('tipo_experiencia/buscar', 'Bolsatrabajo\Gestion\TipoExperienciaController::buscar');

        $routes->get('tipo_entidad', 'Bolsatrabajo\Gestion\TipoEntidadController::index');
        $routes->post('tipo_entidad/guardar', 'Bolsatrabajo\Gestion\TipoEntidadController::guardar', ['as' => 'tipo_entidad.guardar']);
        $routes->post('tipo_entidad/eliminar', 'Bolsatrabajo\Gestion\TipoEntidadController::eliminar');
        $routes->get('tipo_entidad/buscar', 'Bolsatrabajo\Gestion\TipoEntidadController::buscar');

        $routes->get('reporte/convocatorias', 'Bolsatrabajo\Reporte\ReporteConvocatoriasController::indexConvocatorias');
        $routes->get('reporte/convocatorias/lista', 'Bolsatrabajo\Reporte\ReporteConvocatoriasController::listReporteConvocatorias');
    });

    $routes->group('proyectos', static function ($routes) {
        $routes->get('configuracion/tipo-proyecto', 'Proyectos\Configuracion\TipoProyectoController::index');
        $routes->post('configuracion/tipo-proyecto/guardar', 'Proyectos\Configuracion\TipoProyectoController::guardar', ['as' => 'tipo_proyecto.guardar']);
        $routes->post('configuracion/tipo-proyecto/eliminar', 'Proyectos\Configuracion\TipoProyectoController::eliminar');
        $routes->get('configuracion/tipo-proyecto/buscar', 'Proyectos\Configuracion\TipoProyectoController::buscar', ['as' => 'tipo_proyecto.buscar']);

        $routes->get('configuracion/tipo-proyecto/etapa', 'Proyectos\Configuracion\EtapaProyectoController::index');
        $routes->get('configuracion/tipo-proyecto/etapa/buscar', 'Proyectos\Configuracion\EtapaProyectoController::buscarEtapa');
        $routes->post('configuracion/tipo-proyecto/etapa/eliminar', 'Proyectos\Configuracion\EtapaProyectoController::eliminarEtapa');
        $routes->get('configuracion/tipo-proyecto/etapa/list-requisito-accion', 'Proyectos\Configuracion\EtapaProyectoController::listarRequisitosAcciones');
        $routes->post('configuracion/tipo-proyecto/etapa/guardar', 'Proyectos\Configuracion\EtapaProyectoController::guardarEtapa', ['as' => 'tipo_proyecto_etapa.guardar']);
        $routes->post('configuracion/tipo-proyecto/etapa/mover', 'Proyectos\Configuracion\EtapaProyectoController::moverEtapa', ['as' => 'tipo_proyecto_etapa.mover']);

        $routes->post('configuracion/tipo-proyecto/etapa/requisito/guardar', 'Proyectos\Configuracion\EtapaProyectoController::guardarRequisito', ['as' => 'tipo_proyecto_etapa_requisito.guardar']);
        $routes->post('configuracion/tipo-proyecto/etapa/requisito/eliminar', 'Proyectos\Configuracion\EtapaProyectoController::eliminarRequisito');
        $routes->get('configuracion/tipo-proyecto/etapa/requisito/buscar', 'Proyectos\Configuracion\EtapaProyectoController::buscarRequisito');
        $routes->post('configuracion/tipo-proyecto/requisito/mover', 'Proyectos\Configuracion\EtapaProyectoController::moverRequisito');

        $routes->post('configuracion/tipo-proyecto/etapa/accion/guardar', 'Proyectos\Configuracion\EtapaProyectoController::guardarAccion', ['as' => 'tipo_proyecto_etapa_accion.guardar']);
        $routes->post('configuracion/tipo-proyecto/etapa/accion/eliminar', 'Proyectos\Configuracion\EtapaProyectoController::eliminarAccion');
        $routes->get('configuracion/tipo-proyecto/etapa/accion/buscar', 'Proyectos\Configuracion\EtapaProyectoController::buscarAccion');
        $routes->post('configuracion/tipo-proyecto/accion/mover', 'Proyectos\Configuracion\EtapaProyectoController::moverAccion');
        $routes->get('configuracion/tipo-proyecto/etapa/accion/botones', 'Proyectos\Configuracion\EtapaProyectoController::getBotonesAccion');
        $routes->post('configuracion/tipo-proyecto/etapa/accion/botones/crear', 'Proyectos\Configuracion\EtapaProyectoController::crearBotonesAccion');
        $routes->post('configuracion/tipo-proyecto/etapa/accion/botones/eliminar', 'Proyectos\Configuracion\EtapaProyectoController::eliminarBotonesAccion');
        $routes->post('configuracion/tipo-proyecto/etapa/accion/botones/guardar', 'Proyectos\Configuracion\EtapaProyectoController::guardarBotonesAccion');

        $routes->get('configuracion/requisito', 'Proyectos\Configuracion\RequisitoController::index');
        $routes->post('configuracion/requisito/guardar', 'Proyectos\Configuracion\RequisitoController::guardar', ['as' => 'prrequisito.guardar']);
        $routes->post('configuracion/requisito/eliminar', 'Proyectos\Configuracion\RequisitoController::eliminar');
        $routes->get('configuracion/requisito/buscar', 'Proyectos\Configuracion\RequisitoController::buscar', ['as' => 'prrequisito.buscar']);

        $routes->get('configuracion/accion', 'Proyectos\Configuracion\AccionController::index');
        $routes->post('configuracion/accion/guardar', 'Proyectos\Configuracion\AccionController::guardar', ['as' => 'accion.guardar']);
        $routes->post('configuracion/accion/eliminar', 'Proyectos\Configuracion\AccionController::eliminar');
        $routes->get('configuracion/accion/buscar', 'Proyectos\Configuracion\AccionController::buscar', ['as' => 'accion.buscar']);

        $routes->get('proyecto', 'Proyectos\ProyectoController::index');
        $routes->post('proyecto/guardar', 'Proyectos\ProyectoController::guardar', ['as' => 'proyecto.guardar']);
        $routes->post('proyecto/eliminar', 'Proyectos\ProyectoController::eliminar');
        $routes->get('proyecto/buscar', 'Proyectos\ProyectoController::buscar', ['as' => 'proyecto.buscar']);

        $routes->get('proyecto/detalle', 'Proyectos\ProyectoController::detalle');
        $routes->post('proyecto/detalle/requisito/guardar', 'Proyectos\ProyectoController::guardarRequisito');
        $routes->post('proyecto/detalle/requisito/rechazar', 'Proyectos\ProyectoController::rechazarRequisito');
        $routes->post('proyecto/detalle/requisito/aceptar', 'Proyectos\ProyectoController::aceptarRequisito');

        $routes->post('proyecto/detalle/accion/guardar', 'Proyectos\ProyectoController::guardarAccion');
        $routes->get('proyecto/detalle/accion/botones/personas', 'Proyectos\ProyectoController::getPersonasForBotones');
        $routes->post('proyecto/detalle/accion/boton/guardar', 'Proyectos\ProyectoController::guardarAccionBotonPersona');

        $routes->get('proyecto/archivo/descargar', 'Proyectos\ProyectoController::descargarArchivo');
        $routes->get('proyecto/archivo/ver', 'Proyectos\ProyectoController::verArchivo');

    });

    $routes->group('carga', static function ($routes) {
        $routes->get('grupos', 'Grupos\GruposController::index');
        $routes->get('grupos/planes/(:num)', 'Grupos\GruposController::obtenerPlanPorPrograma/$1');
        $routes->get('grupos/ciclos/(:num)', 'Grupos\GruposController::obtenerCiclosPorPlan/$1');
        $routes->get('grupos/cursos/(:num)/(:num)/(:num)/(:num)/(:num)', 'Grupos\GruposController::CursosPlanCiclo/$1/$2/$3/$4/$5');
        $routes->post('grupos/guardarDatos', 'Grupos\GruposController::guardarDatos', ['as' => 'grupos.guardar']);
        $routes->get('grupos/docentes/(:num)/(:num)/(:num)/(:num)', 'Grupos\GruposController::listDocentes/$1/$2/$3/$4');

        $routes->get('grupos/reporte/(:num)/(:num)/(:num)', 'Grupos\GruposController::reporte/$1/$2/$3');

        $routes->get('cursos', 'Grupos\GruposController::cursos');
        $routes->get('docentes', 'Grupos\GruposController::docentes');
        $routes->get('docentes/cursos/(:num)/(:num)', 'Grupos\GruposController::listCursosByDocente/$1/$2');
        $routes->get('cursos/(:num)/(:num)/(:num)/(:num)', 'Grupos\GruposController::listCursosAperturados/$1/$2/$3/$4');
        $routes->get('cursos/datos', 'Grupos\GruposController::listDatosForCursos');
    });

    $routes->group('academico', static function ($routes) {
        $routes->get('alumnos', 'Academico\AlumnoController::index');
        $routes->post('alumnos/guardar', 'Academico\AlumnoController::guardar', ['as' => 'alumno.guardar']);
        $routes->post('alumnos/importar', 'Academico\AlumnoController::importar', ['as' => 'alumno.importar']);
        $routes->get('alumnos/buscar', 'Academico\AlumnoController::buscar');

        $routes->get('informacion', 'Academico\InformacionController::index');
        $routes->post('informacion/buscar', 'Academico\InformacionController::buscarAlumno');
        $routes->get('informacion/buscar', 'Academico\InformacionController::buscarAlumno');
        $routes->get('informacion/buscar/persona', 'Academico\InformacionController::buscarPersona');
        $routes->get('informacion/ver/(:num)', 'Academico\InformacionController::verAlumno/$1');
        $routes->post('informacion/foto', 'Academico\InformacionController::foto', ['as' => 'alumno.foto']);

        $routes->get('asistencia/listar', 'Academico\AsistenciaController::listAsistencia');
        $routes->post('asistencia/guardar', 'Academico\AsistenciaController::asistenciaGuardar', ['as' => 'asistencia.guardar']);
        $routes->get('asistencia/excel', 'Academico\AsistenciaController::reporteAsistenciaExcel');

        $routes->get('alumno/asistencia', 'Academico\AlumnoController::asistencia');
        $routes->post('alumno/asistencia/list', 'Academico\AlumnoController::listAsistencia');

        $routes->get('alumno/perfil', 'Academico\AlumnoController::perfil');
		
		$routes->get('alumno/notas', 'Academico\EvaluacionController::listNotasAlumno');
    });

    $routes->group('docente', static function ($routes) {
        $routes->get('docentes', 'Docente\ProfesorController::index');
        $routes->post('docentes/guardar', 'Docente\ProfesorController::guardar', ['as' => 'docente.guardar']);

        $routes->get('carga', 'Docente\CargaController::index');
        $routes->post('carga/buscar', 'Docente\CargaController::buscarProfesor');
        $routes->post('carga/lectiva', 'Docente\CargaController::obtenerCursosPorPeriodoProfesor');
        $routes->get('carga/ver/(:num)', 'Docente\CargaController::verCarga/$1');
        $routes->get('carga/cursos/(:num)/(:num)/(:num)', 'Docente\CargaController::cursosPorPlanPorProgramaPorPeriodo/$1/$2/$3');
        $routes->get('carga/grupos/(:num)/(:num)/(:num)/(:num)', 'Docente\CargaController::gruposPorCursosPorPlanPorProgramaPorPeriodo/$1/$2/$3/$4');
        $routes->post('carga/guardar', 'Docente\CargaController::guardar', ['as' => 'asignar_carga.guardar']);
        $routes->post('carga/eliminar', 'Docente\CargaController::eliminarCarga');
        $routes->get('carga/pabellon/(:num)', 'Docente\CargaController::pabellonesPorSede/$1');
        $routes->get('carga/aulas/(:num)', 'Docente\CargaController::aulasPorPabellones/$1');
        $routes->post('carga/guardar-horario', 'Docente\CargaController::guardarHorario', ['as' => 'horario.guardar']);
        $routes->post('carga/obtener-horarios', 'Docente\CargaController::obtenerHorarios');
        $routes->post('carga/eliminar-horarios', 'Docente\CargaController::eliminarHorario');

        $routes->get('informacion', 'Docente\InformacionDocenteController::index');
        $routes->get('informacion/ver/(:num)', 'Docente\InformacionDocenteController::verDocente/$1');

        $routes->get('informacion/ver/carga/(:num)', 'Docente\InformacionDocenteController::verCarga/$1');
        $routes->get('informacion/ver/asistencia/(:num)', 'Docente\InformacionDocenteController::verAsistencia/$1');
        $routes->get('informacion/ver/archivo/(:num)', 'Docente\InformacionDocenteController::verArchivo/$1');
        $routes->post('informacion/ver/archivo/guardar', 'Docente\ArchivoController::guardar', ['as' => 'archivo.guardar']);
        $routes->get('informacion/ver/archivo/listar', 'Docente\ArchivoController::listar');
        $routes->get('informacion/ver/archivo/descargar', 'Docente\ArchivoController::descargar');

        $routes->post('competencia/guardar', 'Docente\CompetenciaController::guardar', ['as' => 'competencia.guardar']);
        $routes->get('competencia/buscar', 'Docente\CompetenciaController::buscar');
        $routes->get('competencia/list', 'Docente\CompetenciaController::list');

        $routes->post('evaluacion/guardar', 'Docente\EvaluacionController::guardar', ['as' => 'evaluacion.guardar']);
        $routes->get('evaluacion/buscar', 'Docente\EvaluacionController::buscar');
        $routes->post('evaluacion/eliminar', 'Docente\EvaluacionController::eliminar');

        $routes->get('evaluacion/list', 'Academico\EvaluacionController::listEvaluacion');
        $routes->post('evaluacion', 'Academico\EvaluacionController::guardar');


        $routes->post('carga_nuevo/guardar', 'Docente\CargaDocenteNuevoController::guardar', ['as' => 'carga_nuevo.guardar']);
        $routes->post('carga_nuevo/guardar-producto', 'Docente\CargaDocenteNuevoController::guardarProducto', ['as' => 'producto.guardar']);
        $routes->get('carga_nuevo/list', 'Docente\CargaDocenteNuevoController::listar');
        $routes->get('carga_nuevo/buscar-categoria', 'Docente\CargaDocenteNuevoController::buscarCategoria');
        $routes->get('carga_nuevo/buscar-producto', 'Docente\CargaDocenteNuevoController::buscarProducto');
        $routes->get('carga_nuevo/notas', 'Docente\CargaDocenteNuevoController::listNotas');
        $routes->post('carga_nuevo/notas', 'Docente\CargaDocenteNuevoController::guardarNotas');

    });

    $routes->group('matricula', static function ($routes) {
        $routes->get('matricula_regular', 'Matricula\MatriculaController::index');
        $routes->get('matriculas/ver/(:num)', 'Matricula\MatriculaController::verAlumno/$1');
        $routes->post('matriculas/guardar', 'Matricula\MatriculaController::guardar', ['as' => 'matriculas.guardar']);
        $routes->post('matriculas/quitar', 'Matricula\MatriculaController::quitarCursoMatricula');
        $routes->post('matriculas/confirmar', 'Matricula\MatriculaController::confirmarMatricula');
        $routes->get('matriculas/reporte/(:num)', 'Matricula\MatriculaController::reporteMatricula/$1');
        $routes->get('matriculas/recibo/(:num)', 'Matricula\MatriculaController::imprimirRecibo/$1');
        $routes->get('matriculas/recibo_pago_adiciona/(:num)', 'Matricula\MatriculaController::imprimirReciboPagoAdicional/$1');

        $routes->get('matriculas/grupo/(:num)/(:num)', 'Matricula\MatriculaController::getCargaGrupoJson/$1/$2');
    });

    $routes->group('gestion', static function ($routes) {
        $routes->get('periodo_academico', 'Gestion\PeriodoAcademicoController::index');
        $routes->post('periodo_academico/guardar', 'Gestion\PeriodoAcademicoController::guardar', ['as' => 'periodo_academico.guardar']);
        $routes->post('periodo_academico/eliminar', 'Gestion\PeriodoAcademicoController::eliminar');
        $routes->get('periodo_academico/buscar', 'Gestion\PeriodoAcademicoController::buscar');

        $routes->get('sede', 'Gestion\SedeController::index');
        $routes->post('sede/guardar', 'Gestion\SedeController::guardar', ['as' => 'sede.guardar']);
        $routes->post('sede/eliminar', 'Gestion\SedeController::eliminar');
        $routes->get('sede/deletePebellon/(:num)', 'Gestion\SedeController::deletePabellon/$1');
        $routes->get('sede/buscar', 'Gestion\SedeController::buscar');
        $routes->get('sede/getPabellones', 'Gestion\SedeController::getPabellones');
        $routes->post('sede/registerPabellon', 'Gestion\SedeController::registerPabellon');

        $routes->get('programa_estudio', 'Gestion\ProgramaEstudioController::index');
        $routes->post('programa_estudio/guardar', 'Gestion\ProgramaEstudioController::guardar', ['as' => 'programa_estudio.guardar']);
        $routes->post('programa_estudio/eliminar', 'Gestion\ProgramaEstudioController::eliminar');
        $routes->get('programa_estudio/buscar', 'Gestion\ProgramaEstudioController::buscar');

        $routes->get('aula', 'Gestion\AulaController::index');
        $routes->post('aula/guardar', 'Gestion\AulaController::guardar', ['as' => 'aula.guardar']);
        $routes->post('aula/eliminar', 'Gestion\AulaController::eliminar');
        $routes->get('aula/buscar', 'Gestion\AulaController::buscar');
        $routes->get('aula/pabellon/(:num)', 'Gestion\AulaController::obtenerPabellonesPorSede/$1');

        $routes->get('plan_estudio', 'Gestion\PlanEstudioController::index');
        $routes->post('plan_estudio/guardar', 'Gestion\PlanEstudioController::guardar', ['as' => 'plan_estudio.guardar']);
        $routes->post('plan_estudio/eliminar', 'Gestion\PlanEstudioController::eliminar');
        $routes->get('plan_estudio/buscar', 'Gestion\PlanEstudioController::buscar');

        //$routes->post('plan_estudio/gestionar', 'Gestion\PlanEstudioController::gestionar');
        $routes->get('gestionar/(:num)', 'Gestion\GestionarPlanController::index/$1');
        $routes->post('gestionar/guardar', 'Gestion\GestionarPlanController::guardar', ['as' => 'plan_estudio_curso.guardar']);
        $routes->post('gestionar/obtener_por_id', 'Gestion\GestionarPlanController::obtenerPorId');
        $routes->post('gestionar/eliminar', 'Gestion\GestionarPlanController::eliminar');
        $routes->post('gestionar/buscar', 'Gestion\GestionarPlanController::buscarCursos');
        $routes->post('gestionar/save', 'Gestion\GestionarPlanController::save', ['as' => 'plan_estudio_curso.save']);
        $routes->get('gestionar/reporte/(:num)', 'Gestion\GestionarPlanController::reporte/$1', ['as' => 'plan.reporte']);
        //$routes->get('gestionar/(:any)', 'Gestion\GestionarPlanController::index/$1');

        $routes->post('configuracion_costo/guardar', 'Gestion\ConfiguracionCostoController::guardar', ['as' => 'configuracion_costo.guardar']);
        $routes->get('configuracion_costo/buscar', 'Gestion\ConfiguracionCostoController::buscar');

        $routes->get('teams', 'Teams\TeamsController::index');
        $routes->get('teams/login', 'Teams\TeamsController::login', ['as' => 'teams.login']);
        $routes->get('teams/logout', 'Teams\TeamsController::logout', ['as' => 'teams.logout']);
        $routes->get('teams/session', 'Teams\TeamsController::session');
        $routes->get('teams/datos_sincronizar', 'Teams\TeamsController::getDatosToSincronizar');
        $routes->post('teams/datos_sincronizar', 'Teams\TeamsController::sendDatosToSincronizar');


        $routes->get('mensaje', 'Gestion\MensajesController::index');
    });

    $routes->group('reporte', static function ($routes) {
        $routes->group('matricula', static function ($routes) {
            $routes->get('/', 'Reporte\ReporteMatriculaController::index');
            $routes->get('ciclo', 'Reporte\ReporteMatriculaController::reporteMatriculaCiclo', ['as' => 'reporte.matricula.ciclo']);
            $routes->get('ciclo/lista', 'Reporte\ReporteMatriculaController::listReporteMatriculaCiclo');
            $routes->get('ciclo/excel', 'Reporte\ReporteMatriculaController::excelReporteMatriculaCiclo');
        });
        $routes->group('caja', static function ($routes) {
            $routes->get('/', 'Reporte\ReporteCajaController::index');
            $routes->get('matricula', 'Reporte\ReporteCajaController::reporteCajaMatricula', ['as' => 'reporte.caja.matricula']);
            $routes->get('matricula/lista', 'Reporte\ReporteCajaController::listReporteCajaMatricula');
            $routes->get('matricula/excel', 'Reporte\ReporteCajaController::excelReporteCajaMatricula');

            $routes->get('deudas', 'Reporte\ReporteCajaController::reporteCajaDeudas', ['as' => 'reporte.caja.deudas']);
            $routes->get('deudas/lista', 'Reporte\ReporteCajaController::listReporteCajaDeudas');
            $routes->get('deudas/excel', 'Reporte\ReporteCajaController::excelReporteCajaDeudas');
        });
    });

    $routes->group('seguridad', static function ($routes) {
            $routes->get('sub_modulo', 'Seguridad\SubModuloController::index');
            $routes->post('sub_modulo/guardar', 'Seguridad\SubModuloController::guardar', ['as' => 'sub_modulo.guardar']);
            $routes->post('sub_modulo/eliminar', 'Seguridad\SubModuloController::eliminar');
            $routes->get('sub_modulo/buscar', 'Seguridad\SubModuloController::buscar');

            $routes->get('usuario', 'Seguridad\UsuarioController::index');
            $routes->post('usuario/guardar', 'Seguridad\UsuarioController::guardar', ['as' => 'usuario.guardar']);
            $routes->post('usuario/eliminar', 'Seguridad\UsuarioController::eliminar');
            $routes->get('usuario/buscar', 'Seguridad\UsuarioController::buscar');
            $routes->get('usuario/reporte', 'Seguridad\UsuarioController::reporte');

            $routes->get('usuario/provincia/(:num)', 'Seguridad\UsuarioController::obtenerProvinciasPorDepartamento/$1');
            $routes->get('usuario/distrito/(:num)', 'Seguridad\UsuarioController::obtenerDistritoPorProvincia/$1');

            $routes->get('perfil', 'Seguridad\PerfilController::index');
            $routes->post('perfil/guardar', 'Seguridad\PerfilController::guardar', ['as' => 'perfil.guardar']);
            $routes->post('perfil/eliminar', 'Seguridad\PerfilController::eliminar');
            $routes->get('perfil/buscar', 'Seguridad\PerfilController::buscar');
            $routes->post('perfil/modulos', 'Seguridad\PerfilController::getModulos');
            $routes->post('perfil/update_perfil_detalle', 'Seguridad\PerfilController::updatePerfilDetalle');

            $routes->get('acceso_servidor', 'Administrar\AccesoServidorController::index');
            $routes->post('acceso_servidor/guardar', 'Administrar\AccesoServidorController::guardar', ['as' => 'acceso_servidor.guardar']);
            $routes->post('acceso_servidor/eliminar', 'Administrar\AccesoServidorController::eliminar');
            $routes->get('acceso_servidor/buscar', 'Administrar\AccesoServidorController::buscar');
        });

    $routes->group('caja', static function ($routes) {
        $routes->get('movimiento_caja', 'Caja\MovimientoCajaController::index');
        $routes->post('movimiento_caja/guardar', 'Caja\MovimientoCajaController::guardar', ['as' => 'movimiento_caja.guardar']);
        $routes->post('movimiento_caja/eliminar', 'Caja\MovimientoCajaController::eliminar');
        $routes->get('movimiento_caja/buscar', 'Caja\MovimientoCajaController::buscar');
        $routes->get('movimiento_caja/imprimir', 'Caja\MovimientoCajaController::imprimir');


        $routes->get('concepto_caja', 'Caja\ConceptoCajaController::index');
        $routes->post('concepto_caja/guardar', 'Caja\ConceptoCajaController::guardar', ['as' => 'concepto_caja.guardar']);
        $routes->post('concepto_caja/eliminar', 'Caja\ConceptoCajaController::eliminar');
        $routes->get('concepto_caja/buscar', 'Caja\ConceptoCajaController::buscar');

        $routes->get('recibo_caja', 'Caja\ReciboCajaController::index');
        $routes->post('recibo_caja/guardar', 'Caja\ReciboCajaController::guardar', ['as' => 'recibo_caja.guardar']);
        $routes->post('recibo_caja/eliminar', 'Caja\ReciboCajaController::eliminar');
        $routes->get('recibo_caja/buscar', 'Caja\ReciboCajaController::buscar');

        $routes->get('medio_pago', 'Caja\MedioPagoController::index');
        $routes->post('medio_pago/guardar', 'Caja\MedioPagoController::guardar', ['as' => 'medio_pago.guardar']);
        $routes->post('medio_pago/eliminar', 'Caja\MedioPagoController::eliminar');
        $routes->get('medio_pago/buscar', 'Caja\MedioPagoController::buscar');

        $routes->get('cobranza', 'Caja\CobranzaController::index');
        $routes->get('cobranza/alumno/(:num)', 'Caja\CobranzaController::alumno/$1');
        $routes->post('cobranza/guardar', 'Caja\CobranzaController::guardar', ['as' => 'cobranza.guardar']);
        $routes->get('cobranza/imprimir', 'Caja\CobranzaController::imprimir');

    });

    //query
    $routes->post('/query/datatable/(:alpha)', 'QueryController::dataTable/$1');
});

if (is_file(APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php')) {
    require APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php';
}