<?php

use App\Http\Controllers\AdminController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\NewPasswordController;
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use App\Models\Service;
use App\Models\Customer;

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

Route::get('/', function () {
    return view('auth.login');
});

Route::middleware('auth', 'verified')->group(function () {
    Route::get('/admin_inventory', [AdminController::class, 'inventory'])->name('admin.inventory');
    Route::get('/admin_service', [AdminController::class, 'service'])->name('admin.service');
  
    Route::get('/dashboard', [App\Http\Controllers\DashboardController::class, 'index'])->name('dashboard');
});

Route::middleware('auth')->group(function () {
    Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
    Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
    Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});




Route::middleware(['auth'])->group(function () {

 
    // Route::get('/inventory', [AdminController::class, 'inventory'])->name('admin.inventory');
    // Route::get('/service', [AdminController::class, 'service'])->name('admin.service');

    Route::resource('/item', App\Http\Controllers\ItemController::class);
    Route::resource('/invoice', App\Http\Controllers\InvoiceController::class);
    Route::resource('/service', App\Http\Controllers\ServiceController::class);
    Route::resource('/inout', App\Http\Controllers\InoutController::class);
    Route::resource('/customer', App\Http\Controllers\CustomerController::class);

    Route::get('/show2/{id}', [App\Http\Controllers\InoutController::class, 'show2'])->name('show2');
    Route::post('/in/{id}', [App\Http\Controllers\InoutController::class, 'in'])->name('in');
    Route::post('/out/{id}', [App\Http\Controllers\InoutController::class, 'out'])->name('out'); 
    Route::get('/display_print/{iditem}/{id}', [App\Http\Controllers\InoutController::class, 'display_print'])->name('display_print');
    Route::get('/pickup_note/{inout}/{item}', [App\Http\Controllers\InoutController::class, 'print'])->name('pickup_note');


    Route::get('/invoice/pdf/{id}', [App\Http\Controllers\InvoiceController::class, 'pdf'])->name('invoice_pdf');
    Route::get('/detail/{id}', [App\Http\Controllers\InvoiceController::class, 'detail'])->name('detail');
    
    Route::get('/autocomplete', [App\Http\Controllers\InvoiceController::class, 'autocomplete'])->name('autocomplete');
    Route::get('/customer_autocomplete', [App\Http\Controllers\InvoiceController::class, 'customer_autocomplete'])->name('customer_autocomplete');
       

    // this is function should be in invoice controller but as example i put it here ...after customer search autocomplete, it fill out the car detail table in invoice
   // Route::get('/customer_search', [App\Http\Controllers\InvoiceController::class, 'customer_search'])->name('customer_search');
    Route::post('/customer_search', function (Request $request) {
        $input = $request->name;
        $result = Customer::where('customer_name', $request->name)->first();
        // $result=(array)$result;
        $result = json_decode(json_encode($result), true);
        return response()->json($result);
    })->name('customer_search');

    Route::get('/customer_service_search', [App\Http\Controllers\CustomerController::class, 'customer_service_search'])->name('customer_service_search'); 
    Route::post('/customer_service_search_fill', [App\Http\Controllers\CustomerController::class, 'customer_service_search_fill'])->name('customer_service_search_fill'); 
    //20 august 2023 service_print
    Route::get('/detail_charges/{id}', [App\Http\Controllers\ServiceController::class, 'detail_charges'])->name('detail_charges');

    Route::get('/service_print/{id}', [App\Http\Controllers\ServiceController::class, 'service_print'])->name('service_print');
    Route::get('/service_print2/{id}', [App\Http\Controllers\ServiceController::class, 'service_print2'])->name('service_print2');




});


Route::middleware(['auth', 'is_admin'])->group(function () {

Route::get('/admin', [AdminController::class, 'index'])->name('admin.index');
Route::get('register', [RegisteredUserController::class, 'create'])->name('register');
Route::post('register', [RegisteredUserController::class, 'store']);
Route::get('reset-password/{token}', [NewPasswordController::class, 'create'])->name('password.reset');




});

require __DIR__ . '/auth.php';
