<?php

/*
|--------------------------------------------------------------------------
| 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!
|
*/

//=====global======//
Route::get('/', function () {
    return view('index');
});
Route::get('inicio', function () {
    return view('index');
})->name('inicio');
Route::get('proyectos', function () {
    return view('proyectos');
})->name('proyectos');
Route::get('error/{mensaje?}', function () {
    return view('error');
})->name('error');
Route::get('dashboard/', function () {
    return view('layouts/dashboard');
})->name('dashboard');
Route::get('solicitar-usuario', function () {
    return view('auth/solicitar-usuario');
})->name('solicitar-usuario');

Route::post('guardar-mensaje', 'MensajesController@store')->name('saveMessage');

Route::get('dashboard', function () {
    return view('layouts.dashboard');
});

//=======admin=======//
Route::middleware(['admin'])->group(function () {
    //=======admin=======//
    Route::get('/admin', 'adminController@index')->name('admin');
    Route::get('/profileAdmin', 'adminController@profile')->name('profileAdmin');
    Route::post('updateAdmin/{id}', 'adminController@update')->name('updateAdmin');
    Route::post('updateAdminPassword/{id}', 'adminController@updateAdminPassword')->name('updateAdminPassword');
    //=======users=======//
    Route::get('users/{role?}','usersController@index')->name('users');
    Route::get('/user/{id?}','usersController@user')->name('user');
    Route::post('updateUser/{id}', 'usersController@update')->name('updateUser');
    Route::get('eliminar-user/{id}','usersController@destroy')->name('eliminar-user');
    Route::get('asignarApp/{id}','usersController@asignarApp')->name('asignarApp');
    Route::post('asignarApp/{id}','usersController@guardarAppAsignada')->name('asignarApp');
    Route::get('userByRole/{role?}/{desde?}/{hasta?}','usersController@userByRole')->name('userByRole');
    Route::get('destroyAppUser/{id}','usersController@destroyAppUser')->name('destroyAppUser');
    //=====Mensajes======//
    Route::get('/mensajes', 'mensajesController@index')->name('mensajes');
    Route::get('/mensaje/{id}', 'mensajesController@show')->name('mensaje');
    Route::get('/eliminar-mensaje/{id}', 'mensajesController@destroy')->name('eliminar-mensaje');
    //=====Aplicacion======//
    Route::get('aplicaciones','aplicacionController@index')->name('aplicaciones');
    Route::get('aplicacion/{id}','aplicacionController@show')->name('aplicacion');
    Route::get('agregarAplicacion','aplicacionController@create')->name('agregarAplicacion');
    Route::get('filtrarApp/{tipo?}','aplicacionController@filtrarApp')->name('filtrarApp');
    Route::get('eliminar-aplicacion/{id}','aplicacionController@destroy')->name('eliminar-aplicacion');
    Route::post('agregar-aplicacion','aplicacionController@store')->name('agregar-aplicacion');
    Route::post('actualizarAplicacion/{id}','aplicacionController@update')->name('actualizarAplicacion');
    Route::post('asignarUsuario','aplicacionController@asignarUsuario')->name('asignarUsuario');
    Route::get('EliminarUsuarioApp/{id}','aplicacionController@EliminarUsuarioApp')->name('EliminarUsuarioApp');
    Route::get('NotAppUser/{id}/{role}','aplicacionController@NotAppUser')->name('NotAppUser');
    //=====Modulos======//
    Route::get('modulos/{app?}','modulosController@index')->name('modulos');
    Route::get('modulosByApp/{id?}','modulosController@modulosByApp')->name('modulosByApp');
    Route::get('agregarModulos','modulosController@create')->name('agregarModulos');
    Route::post('agregar-modulo','modulosController@store')->name('agregar-modulo');
    Route::get('modulo/{id?}','modulosController@show')->name('modulo');
    Route::post('actualizarModulo/{id}','modulosController@update')->name('actualizarModulo');
    Route::get('eliminarModulo/{id}','modulosController@destroy')->name('eliminarModulo');
    //=====Formularios======//
    Route::get('agregarFormulario/{id}','formularioController@create')->name('agregarFormulario');
    Route::post('agregarFormulario/{id}','formularioController@store')->name('agregarFormulario');
    Route::post('actualizarFormulario/{id}','formularioController@update')->name('actualizarFormulario');
    Route::get('Formulario/{id}','formularioController@show')->name('Formulario');
    Route::get('eliminarFormulario/{id}','formularioController@destroy')->name('eliminarFormulario');
});

//=======Requerimientos=======//
Route::middleware(['cliente_admin_desarrollador'])->group(function () {
    Route::get('requerimientos/{app?}','requerimientosController@index')->name("requerimientos");
    Route::get('requerimiento/{id?}','requerimientosController@show')->name("requerimiento");
    Route::get('agregarRequerimiento','requerimientosController@create')->name("agregarRequerimiento");
    Route::post('AgregarRequerimiento','requerimientosController@store')->name("AgregarRequerimiento");
    Route::get('AsignarDesarrollador/{id}','requerimientosController@asignar')->name("AsignarDesarrollador");
    Route::post('asignarDesarrollador/{id}','requerimientosController@asignarDesarrollador')->name("asignarDesarrollador");
    Route::get('obtenerModulos/{id?}','requerimientosController@modulosRelacionados')->name("obtenerModulos");
    Route::get('obtenerFormularios/{id?}','requerimientosController@FormulariosRelacionados')->name("obtenerFormularios");
    Route::get('eliminarRequerimineto/{id}','requerimientosController@destroy')->name("eliminarRequerimineto");
    Route::post('actualizarEstadoRequerimiento/{id}','requerimientosController@actualizarestado')->name("actualizarEstadoRequerimiento");
    Route::post('ActualizarRequerimiento/{id}','requerimientosController@update')->name("ActualizarRequerimiento");
    Route::get('requerimientosDesarrolladores','requerimientosController@requerimientosDesarrollador')->name("requerimientosDesarrolladores");
    Route::get('requerimientosClientes','requerimientosController@requerimientosClientes')->name("requerimientosClientes");
    Route::get('requerimientosAdmin','requerimientosController@requerimientosAdmin')->name("requerimientosAdmin");
    Route::get('mostrarPorApp/{id?}','requerimientosController@mostrarPorApp')->name("mostrarPorApp");
    Route::get('destroydeveloperRequirement/{id}','requerimientosController@destroydeveloperRequirement')->name("destroydeveloperRequirement");
    Route::post('AgregarComentario/{id}','requerimientosController@AgregarComentario')->name("AgregarComentario");
    Route::get('eliminarComentario/{id}','requerimientosController@eliminarComentario')->name("eliminarComentario");
});



//=======cliente=======//
Route::middleware(['cliente'])->group(function () {
    Route::get('cliente','clienteController@index')->name('cliente');
    Route::get('profileCliente','clienteController@profile')->name('profileCliente');
    Route::get('requerimientosclientes','clienteController@requerimientos')->name('requerimientosclientes');
    Route::post('updateCliente/{id}', 'clienteController@update')->name('updateCliente');
    Route::post('updateClientePassword/{id}', 'clienteController@updateClientePassword')->name('updateClientePassword');
});


//=======desarrollador=======//
Route::middleware(['desarrollador'])->group(function () {
    Route::get('desarrollador','desarrolladorController@index')->name('desarrollador');
    Route::get('profileDesarrollador','desarrolladorController@profile')->name('profileDesarrollador');
    Route::post('updateDesarrollador/{id}', 'desarrolladorController@update')->name('updateDesarrollador');
});

//=======Home Controller=======//
Auth::routes();

Route::get('/home', 'HomeController@index');


// route::get('register',function(){
//     return null;
// });

// route::post('register', 'Auth\RegisterController@create')->name("register");

