<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TicketsController;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/

Route::group(['middleware'=>'dbTransaction'],function(){

    Route::group(['prefix'=>'tickets'], function(){

        Route::get('all',[TicketsController::class,'allTickets']);
        Route::get('occurrence/tickets',[TicketsController::class,'occurrenceTickets']);
        Route::get('all/pending',[TicketsController::class,'allPending']);
        Route::get('all/opened',[TicketsController::class,'allOpened']);
        Route::get('all/escalated',[TicketsController::class,'allEscalated']);
        Route::get('all/closed',[TicketsController::class,'allClosed']);
        Route::get('all/validated',[TicketsController::class,'allValidated']);
        Route::get('all/alerts',[TicketsController::class,'allAlerts']);
        Route::get('my_tickets',[TicketsController::class,'myTickets']);
        Route::get('for_user/{my_id}',[TicketsController::class,'hisTickets']);
        Route::get('view',[TicketsController::class,'viewTicket']);
        Route::post('create/{user_id}',[TicketsController::class,'createTicket']);
        Route::post('update',[TicketsController::class,'updateTicket']);
        Route::post('open',[TicketsController::class,'openTicket']); 
        Route::post('close',[TicketsController::class,'closeTicket']); 
        Route::post('delete',[TicketsController::class,'deleteTicket']); 
        Route::post('escalate',[TicketsController::class,'escalateTicket']); 
        Route::post('validate',[TicketsController::class,'validateTicket']); //only creator, operation and admin can validate ticket
    });

    Route::post('create/ticket', [TicketsController::class, 'pushTicket']);
});
