<?php

use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\TicketController;
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 and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

Route::get('api/data', function(){
    $response = Http::get('http://127.0.0.1:8001/api/tickets/all/pending')->api_data ?? [];
        return  $response;
});


Route::get('',[AuthController::class, 'index'])->name('auth.index');
Route::get('logout',[AuthController::class, 'logout'])->name('auth.logout');
Route::post('login',[AuthController::class, 'login'])->name('auth.validate.login');

Route::group(['prefix'=>'app','middleware'=>['allusers']], function(){
    Route::group(['prefix'=>'admin', 'middleware' => ['admin']],function(){
        Route::post('users/create',[UserController::class,'create'])->name('admin.user.create');
    });
    Route::group(['prefix'=>'user'],function(){
        Route::get('dashboard',[UserController::class, 'dashboard'])->name('admin.dashboard');
        Route::get('users/all',[UserController::class,'show'])->name('admin.user.show');
        Route::get('users/view',[UserController::class,'detail'])->name('user.detail.view');
        Route::get('users/edit',[UserController::class,'edit'])->name('user.edit');
        Route::get('users/delete',[UserController::class,'delete'])->name('user.delete');
    });
    Route::group(['prefix'=>'tickets'],function(){
        Route::get('opened',[TicketController::class,'opened'])->name('tickets.opened.view');
        Route::get('closed',[TicketController::class,'closed'])->name('tickets.closed.view');
        Route::get('escalated',[TicketController::class,'escalated'])->name('tickets.escalated.view');
        Route::get('pending',[TicketController::class,'pending'])->name('tickets.pending.view');
        Route::get('validated',[TicketController::class,'validated'])->name('tickets.validated.view');
        Route::get('occurrence',[TicketController::class,'occurrence'])->name('tickets.occurrence.view');
        
        Route::get('view',[TicketController::class,'showTicket'])->name('tickets.show');
        Route::get('open',[TicketController::class,'openTicket'])->name('tickets.open');
        Route::get('escalate/confirm',[TicketController::class,'confirmEscalate'])->name('tickets.confirm.escalate');
        Route::get('close/confirm',[TicketController::class,'confirmClose'])->name('tickets.confirm.close');
        Route::get('validate/confirm',[TicketController::class,'confirmValidate'])->name('tickets.confirm.validate');
        
        Route::post('edit',[TicketController::class,'updateTicket'])->name('tickets.update');
        Route::post('create',[TicketController::class,'createTicket'])->name('tickets.create');
        Route::post('close',[TicketController::class,'closeTicket'])->name('tickets.close');
        Route::post('escalate',[TicketController::class,'escalateTicket'])->name('tickets.escalate');
        Route::post('validate',[TicketController::class,'validateTicket'])->name('tickets.validate');
    });

    Route::group(['prefix'=>'alerts'],function(){
        Route::get('all',[TicketController::class,'alerts'])->name('alerts.all');
    });

});
