<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

// {} Librerías

// ! Peticiones
use Illuminate\Http\Request;

// ! Base de datos
use Illuminate\Support\Facades\DB;

// ! Controladores

// + General
use App\Http\Controllers\Controlador;
use App\Http\Controllers\ControladorAutenticacion;

// ! Autenticación
use Illuminate\Support\Facades\Auth;

// {} Controlador de la autenticación (inicio y cierre de sesión)
// Route::controller(ControladorAutenticacion::class)->group(function() {

//     // + Rutas sin autenticación
//     Route::post('/', 'iniciarSesion')
//         ->middleware('guest')
//         ->name('iniciarSesion');

//     // + Rutas con autenticación
//     Route::get('/cerrarSesion', 'cerrarSesion')
//         ->middleware('auth')
//         ->name('cerrarSesion');

// });

// {} Rutas sin autenticación

// ! Vista del inicio de sesión
Route::get('/', function() {

    return view('aplicacion.seccion.inicio');

})->name('aplicacion.seccion.inicio');


Route::get('/adm', function () {

    return view('aplicacion.seccion.adm');
});


// Route::get('/prueba1', function () {

//     return view('aplicacion.seccion.prueba1');
// });




// ! Peticiones
Route::controller(Controlador::class)->group(function() {

    Route::get('/ejecutarPeticion', 'ejecutarPeticion')
        ->name('ejecutarPeticion');

    Route::post('/ejecutarPeticion', 'ejecutarPeticion')
        ->name('ejecutarPeticion');

    Route::get('/obtenerColumnas', 'obtenerColumnas')
        ->name('obtenerColumnas');

});

// {} Rutas con autenticación

// ! Usuario autenticado
// Route::group(['middleware' => ['auth']], function() {

//     // + General

//     // ? Sección de inicio
//     Route::get('/inicio', function(Request $request) {

//         return view('aplicacion.seccion.inicio');

//     })->name('aplicacion.seccion.inicio');

//     // ? Secciones de registros
//     Route::get('/registros', function(Request $request) {

//         return back();

//     });

//     // * Cobradores
//     Route::get('/registros/cobradores', function(Request $request) {

//         return view('aplicacion.seccion.registros.cobradores');

//     })->name('aplicacion.seccion.registros.cobradores');

//     // * Oficiales
//     Route::get('/registros/oficiales', function(Request $request) {

//         return view('aplicacion.seccion.registros.oficiales');

//     })->name('aplicacion.seccion.registros.oficiales');

//     // * Tipos de Notas
//     Route::get('/registros/tiposNotas', function(Request $request) {

//         return view('aplicacion.seccion.registros.tiposNotas');

//     })->name('aplicacion.seccion.registros.tiposNotas');

//     // * Supervisores
//     Route::get('/registros/supervisores', function(Request $request) {

//         return view('aplicacion.seccion.registros.supervisores');

//     })->name('aplicacion.seccion.registros.supervisores');

//     // * Departamentos
//     Route::get('/registros/departamentos', function(Request $request) {

//         return view('aplicacion.seccion.registros.departamentos');

//     })->name('aplicacion.seccion.registros.departamentos');

//     // * Posiciones
//     Route::get('/registros/posiciones', function(Request $request) {

//         return view('aplicacion.seccion.registros.posiciones');

//     })->name('aplicacion.seccion.registros.posiciones');

//     // * Áreas
//     Route::get('/registros/areas', function(Request $request) {

//         return view('aplicacion.seccion.registros.areas');

//     })->name('aplicacion.seccion.registros.areas');

//     // * Categorías de Clientes
//     Route::get('/registros/categoriasClientes', function(Request $request) {

//         return view('aplicacion.seccion.registros.categoriasClientes');

//     })->name('aplicacion.seccion.registros.categoriasClientes');

//     // * Tipos de Seguimientos
//     Route::get('/registros/tiposSeguimientos', function(Request $request) {

//         return view('aplicacion.seccion.registros.tiposSeguimientos');

//     })->name('aplicacion.seccion.registros.tiposSeguimientos');

//     // * Seguimientos
//     Route::get('/registros/seguimientos', function(Request $request) {

//         return view('aplicacion.seccion.registros.seguimientos');

//     })->name('aplicacion.seccion.registros.seguimientos');

//     // ? Secciones de procesos
//     Route::get('/procesos', function(Request $request) {

//         return back();

//     });

//     // ? Secciones de reportes
//     Route::get('/reportes', function(Request $request) {

//         return back();

//     });

//     // * Seguimientos
//     Route::get('/reportes/seguimientos', function(Request $request) {

//         return view('aplicacion.seccion.reportes.seguimientos');

//     })->name('aplicacion.seccion.reportes.seguimientos');

//     // + Administración
//     Route::get('/administracion', function(Request $request) {

//         $programas = [];

//         return view('aplicacion.seccion.administracion', compact('programas'));

//     })->name('aplicacion.seccion.administracion');

//     // ? Secciones de registros
//     Route::get('/administracion/registros', function(Request $request) {

//         return back();

//     });

//     // * Bancos
//     Route::get('/administracion/registros/bancos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.bancos');

//     })->name('aplicacion.seccion.administracion.registros.bancos');

//     // * Clasificaciones contables
//     Route::get('/administracion/registros/clasificacionesContables', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.clasificacionesContables');

//     })->name('aplicacion.seccion.administracion.registros.clasificacionesContables');

//     // * Distritos
//     Route::get('/administracion/registros/distritos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.distritos');

//     })->name('aplicacion.seccion.administracion.registros.distritos');

//     // * Estados civiles
//     Route::get('/administracion/registros/estadosCiviles', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.estadosCiviles');

//     })->name('aplicacion.seccion.administracion.registros.estadosCiviles');

//     // * Formas de pago
//     Route::get('/administracion/registros/formasPagos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.formasPagos');

//     })->name('aplicacion.seccion.administracion.registros.formasPagos');

//     // * Garantías
//     Route::get('/administracion/registros/garantias', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.garantias');

//     })->name('aplicacion.seccion.administracion.registros.garantias');

//     // * Generos
//     Route::get('/administracion/registros/generos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.generos');

//     })->name('aplicacion.seccion.administracion.registros.generos');

//     // * Monedas
//     Route::get('/administracion/registros/monedas', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.monedas');

//     })->name('aplicacion.seccion.administracion.registros.monedas');

//     // * Municipios
//     Route::get('/administracion/registros/municipios', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.municipios');

//     })->name('aplicacion.seccion.administracion.registros.municipios');

//     // * Países
//     Route::get('/administracion/registros/paises', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.paises');

//     })->name('aplicacion.seccion.administracion.registros.paises');

//     // * Provincias
//     Route::get('/administracion/registros/provincias', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.provincias');

//     })->name('aplicacion.seccion.administracion.registros.provincias');

//     // * Rutas
//     Route::get('/administracion/registros/rutas', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.rutas');

//     })->name('aplicacion.seccion.administracion.registros.rutas');

//     // * Sectores
//     Route::get('/administracion/registros/sectores', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.sectores');

//     })->name('aplicacion.seccion.administracion.registros.sectores');

//     // * Seguros
//     Route::get('/administracion/registros/seguros', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.seguros');

//     })->name('aplicacion.seccion.administracion.registros.seguros');

//     // * Sucursales
//     Route::get('/administracion/registros/sucursales', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.sucursales');

//     })->name('aplicacion.seccion.administracion.registros.sucursales');

//     // * Tipos de Contactos
//     Route::get('/administracion/registros/tiposContactos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.tiposContactos');

//     })->name('aplicacion.seccion.administracion.registros.tiposContactos');

//     // * Tipos de Créditos
//     Route::get('/administracion/registros/tiposCreditos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.tiposCreditos');

//     })->name('aplicacion.seccion.administracion.registros.tiposCreditos');

//     // * Tipos de Préstamos
//     Route::get('/administracion/registros/tiposPrestamos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.tiposPrestamos');

//     })->name('aplicacion.seccion.administracion.registros.tiposPrestamos');

//     // * Tipos de Tasas
//     Route::get('/administracion/registros/tiposTasas', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.tiposTasas');

//     })->name('aplicacion.seccion.administracion.registros.tiposTasas');

//     // * Usuarios
//     Route::get('/administracion/registros/usuarios', function(Request $request) {

//         return view('aplicacion.seccion.administracion.registros.usuarios');

//     })->name('aplicacion.seccion.administracion.registros.usuarios');

//     // ? Secciones de procesos
//     Route::get('/administracion/procesos', function(Request $request) {

//         return back();

//     });

//     // * Permisos
//     Route::get('/administracion/procesos/permisos', function(Request $request) {

//         return view('aplicacion.seccion.administracion.procesos.permisos');

//     })->name('aplicacion.seccion.administracion.procesos.permisos');

//     // + Proyectos

//     // ? Secciones de registros

//     // * Nóminas
//     Route::get('/registros/nominas', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.registros.nominas');

//     })->name('proyectos.seccion.registros.nominas');

//     // * Proyectos
//     Route::get('/registros/proyectos', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.registros.proyectos');

//     })->name('proyectos.seccion.registros.proyectos');

//     // * Empleados
//     Route::get('/registros/empleados', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.registros.empleados');

//     })->name('proyectos.seccion.registros.empleados');

//     // * Suplidores
//     Route::get('/registros/suplidores', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.registros.suplidores');

//     })->name('proyectos.seccion.registros.suplidores');

//     // * Facturas
//     Route::get('/registros/facturas', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.registros.facturas');

//     })->name('proyectos.seccion.registros.facturas');

//     // ? Secciones de procesos

//     // * Asistencias
//     Route::get('/procesos/asistencias', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.procesos.asistencias');

//     })->name('proyectos.seccion.procesos.asistencias');

//     // * Pagos de Facturas
//     Route::get('/procesos/pagosFacturas', function(Request $request) {

//         $fecha = DB::select(
//             "EXEC [dbo].[p_traer_filtros] ?, ?, ?, ?", [
//                 Auth::user()->id_usuario,
//                 '',
//                 '',
//                 'FECHA_NOMINA'
//         ]);

//         return view('aplicacion.seccion.proyectos.procesos.pagosFacturas', compact('fecha'));

//     })->name('proyectos.seccion.procesos.pagosFacturas');

//     // ? Secciones de reportes

//     // * Facturas
//     Route::get('/reportes/facturas', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.reportes.facturas');

//     })->name('proyectos.seccion.reportes.facturas');

//     // * Asistencias
//     Route::get('/reportes/asistencias', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.reportes.asistencias');

//     })->name('proyectos.seccion.reportes.asistencias');

//     // * Nóminas
//     Route::get('/reportes/nominas', function(Request $request) {

//         return view('aplicacion.seccion.proyectos.reportes.nominas');

//     })->name('proyectos.seccion.reportes.nominas');

//     // + Peticiones
//     Route::controller(Controlador::class)->group(function() {

//         Route::get('/ejecutarPeticion', 'ejecutarPeticion')
//             ->name('ejecutarPeticion');

//         Route::post('/ejecutarPeticion', 'ejecutarPeticion')
//             ->name('ejecutarPeticion');

//         Route::get('/obtenerColumnas', 'obtenerColumnas')
//             ->name('obtenerColumnas');

//     });

// });
