<META NAME="robots" CONTENT="noindex,nofollow">


<?php

use App\Http\Controllers\AdminController;
use App\Http\Controllers\BooksController;
use App\Http\Controllers\ContactusController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\MessagesController;
use App\Http\Controllers\PagesController;
use App\Http\Controllers\QueryController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Admin\AdminController as AdminAdminController;
use App\Http\Controllers\Admin\BlogCategoryController;
use App\Http\Controllers\Admin\BlogController;
use App\Http\Controllers\Admin\BookController;
use App\Http\Controllers\Admin\CategoryController;
use App\Http\Controllers\Admin\DashboardController as AdminDashboardController;
use App\Http\Controllers\Admin\LoginController;
use App\Http\Controllers\Admin\OrderController;
use App\Http\Controllers\Admin\RolesController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\BlogController as FrontendBlogController;
use App\Models\Order;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Admin\EditProfileController;
use App\Http\Controllers\Admin\SettingsController;


Auth::routes(['verify' => true]);
Route::group(['prefix' => 'admin'], function () {
    Route::name('admin.')->group(function () {

        Route::group(['middleware' => 'adminguest'], function () {
            Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
            Route::post('/login', [LoginController::class, 'login'])->name('login');
        });
        Route::group(['middleware' => 'adminauth'], function () {
            Route::get('/logout', [LoginController::class, 'logout'])->name('logout');
            Route::get('/dashboards', [AdminDashboardController::class, 'index'])->name('dashboard');
            Route::get('/contact/list', [AdminDashboardController::class, 'contact'])->name('contact.list');

            Route::resource('/roles', RolesController::class);
            Route::get('/role/update/status/{id}', [RolesController::class, 'updateStatus'])->name('admin.role.update.status');
            Route::resource('/admin', AdminAdminController::class);
            Route::get('/admin/update-status/{id}', [AdminAdminController::class, 'updateStatus'])
                ->name('admin.update.status');

            Route::resource('/user', UserController::class);
            Route::resource('/blogs', BlogController::class);
            Route::get('blog/update/status/{id}', [BlogController::class, 'updateStatus'])->name('blog.update.status');
            Route::get('blog/category/update/status/{id}', [BlogCategoryController::class, 'updateStatus'])->name('blog.category.update.status');

            Route::resource('/blog-categories', BlogCategoryController::class);
            Route::resource('/books', BookController::class);
            Route::resource('/orders', OrderController::class);
            Route::resource('/category', CategoryController::class);
            Route::post('/blogs/upload', [BlogController::class, 'uploadImage'])->name('blogs.upload');
            Route::get('/edit/profile/{id}', [EditProfileController::class, 'create'])->name('edit.profile');
            Route::put('/edit/profile/update/{id}', [EditProfileController::class, 'update'])->name('edit.profile.update');
            Route::view('/settings', 'admin.setting.setting')->name('setting');
            Route::post('/update/title', [SettingsController::class, 'updateTitles'])->name('update.title');
        Route::post('/update/favicon', [SettingsController::class, 'updateFavicons'])->name('settings.updateFavicons');
        });
    });
});


Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
/*
|--------------------------------------------------------------------------
| 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('/', [PagesController::class, 'index'])->name('home');
Route::get('/about', [PagesController::class, 'about'])->name('about');

Route::resource('books', BooksController::class);
Route::resource('admin', AdminController::class);
Route::get('books/{id}/delete', [BooksController::class, 'destroy'])->name('home.delete');
Route::get('request/{id}/edit', [BooksController::class, 'edit'])->name('home.edit'); // Assuming this is what you intended
Route::post('/books/{id}', [BooksController::class, 'update'])->name('books.update');
// Route::post('search-books', [BooksController::class, 'index'])->name('books.search');

Route::get('/orderByTitle', [BooksController::class, 'orderByTitle']);
Route::get('/orderByAuthor', [BooksController::class, 'orderByAuthor']);
Route::get('/PriceGreaterThan50', [BooksController::class, 'PriceGreaterThan50']);
Route::get('/PriceLessThan50', [BooksController::class, 'PriceLessThan50']);
Route::get('/HighestToLowest', [BooksController::class, 'HighestToLowest']);
Route::get('/LowestToHighest', [BooksController::class, 'LowestToHighest']);
Route::get('/NewestToOldest', [BooksController::class, 'NewestToOldest']);
Route::get('/OldestToNewest', [BooksController::class, 'OldestToNewest']);

Auth::routes();
Route::get('/dashboard', [DashboardController::class, 'index']);
Route::get('/orders', [DashboardController::class, 'orders']);
Route::get('/orders/vieworder/{id}', [DashboardController::class, 'view_order_func'])->name('view.order');
Route::get('/profile', [DashboardController::class, 'profile']);
Route::post('/profileupdate', [DashboardController::class, 'profileupdate'])->name('profileupdate');

Route::post('/orders/ordermessege/{id}', [DashboardController::class, 'ordermessege_func'])->name('dashboard.ordermessege');
Route::post('/orders/updateordermessege/{id}', [DashboardController::class, 'updateordermessege_func'])->name('dashboard.updateordermessege');

Route::get('/admin', [AdminController::class, 'index']);
Route::get('/admin/requestbook/{id}', [AdminController::class, 'view_requestbook'])->name('view.requestbook');
Route::post('/admin/ordermessege/{id}', [AdminController::class, 'ordermessege_func'])->name('messages.ordermessege');
Route::post('/admin/updateordermessege/{id}', [AdminController::class, 'updateordermessege_func'])->name('messages.updateordermessege');

Route::get('/addToCart/{id}', [BooksController::class, 'getAddToCart']);
Route::get('/reduce/{id}', [BooksController::class, 'getReduceByOne']);
Route::get('/removeItem/{id}', [BooksController::class, 'getRemoveItem']);
Route::get('/Requestedbook', [BooksController::class, 'getCart']);
Route::get('/checkout', [BooksController::class, 'getCheckout']);
Route::post('/checkout', [BooksController::class, 'postcheckout'])->name('books.postcheckout');
Route::any('/checkoutrequestbook', [BooksController::class, 'checkoutrequestbook']);
Route::get('/search', [QueryController::class, 'search']);
Route::get('/unread-count', [PagesController::class, 'unreadCount']);
Route::get('/blog', [FrontendBlogController::class, 'index'])->name('blog.listing');
Route::get('/blog/show/{slug}', [FrontendBlogController::class, 'show'])->name('blogs.show');


Route::resource('contact', ContactusController::class, ['except' => ['create', 'edit', 'update', 'destroy', 'show']]);

Route::group(['prefix' => 'messages'], function () {
    Route::get('/', [MessagesController::class, 'index'])->name('messages');
    Route::get('create', [MessagesController::class, 'create'])->name('messages.create');
    Route::post('/', [MessagesController::class, 'store'])->name('messages.store');
    Route::get('{id}', [MessagesController::class, 'show'])->name('messages.show');
    Route::put('{id}', [MessagesControl