File size: 4,466 Bytes
70ba896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php

use App\Http\Controllers\ProfileController;
use App\Http\Controllers\CartController;
use App\Http\Controllers\ProductController;
use Illuminate\Support\Facades\Route;

/* Route::get('/', function () {
    return view('welcome');
}); */

Route::get('/dashboard', [App\Http\Controllers\DashboardController::class, 'index'])
    ->middleware(['auth', 'verified'])->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::get('/cart', [CartController::class, 'index'])->name('cart.index');
Route::post('/cart/add/{id}', [CartController::class, 'add'])->name('cart.add');
Route::post('/cart/remove/{id}', [CartController::class, 'remove'])->name('cart.remove');
Route::get('/my-orders', [CartController::class, 'customerOrders'])->name('customer.orders');

Route::get('/', function () {
    $totalProducts = \App\Models\Product::count();            // total items
    $gameCount     = \App\Models\Product::select('game')
                       ->distinct()
                       ->count('game');                       // unique games

    $categoryCounts = [
        'Genshin'       => \App\Models\Product::where('game', 'Genshin')->count(),
        'Starrail'      => \App\Models\Product::where('game', 'Starrail')->count(),
        'WutheringWave' => \App\Models\Product::where('game', 'WutheringWave')->count(),
    ];

    // Get all custom games for the homepage
    $customGames = \App\Models\CustomGame::orderBy('name')->get();

    return view('scroll_reveal_landing', compact(
        'totalProducts',
        'gameCount',
        'categoryCounts',
        'customGames'
    ));
})->name('home');

Route::get('/store', [ProductController::class, 'categories'])->name('categories');
Route::get('/store/{category}', [ProductController::class, 'categoryProducts'])->name('store.category');
Route::get('/store/{category}/{product_name}', [ProductController::class, 'show'])->name('store.product');
// Products browsing route removed
Route::get('/api/products/category/{game}', [ProductController::class, 'getByCategory'])->name('api.products.category');
Route::get('/api/search', [ProductController::class, 'search'])->name('api.search');

// Dashboard Analytics API Routes
Route::prefix('api/dashboard')->group(function () {
    Route::get('/revenue', [App\Http\Controllers\Api\DashboardController::class, 'revenue'])->name('api.dashboard.revenue');
    Route::get('/profit', [App\Http\Controllers\Api\DashboardController::class, 'profit'])->name('api.dashboard.profit');
    Route::get('/sales', [App\Http\Controllers\Api\DashboardController::class, 'sales'])->name('api.dashboard.sales');
    Route::get('/customers', [App\Http\Controllers\Api\DashboardController::class, 'customers'])->name('api.dashboard.customers');
    Route::get('/summary', [App\Http\Controllers\Api\DashboardController::class, 'summary'])->name('api.dashboard.summary');
});
Route::post('/store', [ProductController::class, 'store'])->name('products.store');

// Old product URLs removed

Route::put('/products/{id}', [ProductController::class, 'update'])->name('products.update');

Route::post('/checkout', [CartController::class, 'checkout'])->name('checkout.submit');

Route::middleware('auth')->group(function () {
    Route::get('/orders', [CartController::class, 'order'])->name('orders.index');
    Route::delete('/orders/{id}', [CartController::class, 'deleteOrder'])->name('orders.delete');
    Route::patch('/orders/{id}/complete', [CartController::class, 'completeOrder'])->name('orders.complete');
    Route::patch('/orders/{id}/reject', [CartController::class, 'rejectOrder'])->name('orders.reject');
    Route::get('/manage-products', [ProductController::class, 'listOFproduct'])->name('products.listOFproduct');
    Route::delete('/products/{id}', [ProductController::class, 'destroy'])->name('products.destroy');
    Route::post('/custom-games', [ProductController::class, 'storeCustomGame'])->name('custom-games.store');
    Route::delete('/custom-games/{gameName}', [ProductController::class, 'deleteCustomGame'])->name('custom-games.destroy');
    Route::get('/orders/{order}', [CartController::class, 'show'])->name('orders.show');
});

require __DIR__.'/auth.php';