cms-frontend/routes/web.php

147 lines
9.3 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\UserManagementController;
use App\Http\Controllers\StationController;
use App\Http\Controllers\ContentController;
use App\Http\Controllers\CardMemberController;
use App\Http\Controllers\ReportsController;
use App\Http\Controllers\SystemParameterController;
use App\Http\Controllers\FuelPriceController;
use App\Http\Controllers\TopUpSettingController;
// Auth Routes
Route::get('/', [AuthController::class, 'showLoginForm'])->name('login');
Route::post('/login', [AuthController::class, 'login'])->name('login.submit');
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
Route::get('/change-password', [AuthController::class, 'showChangePasswordForm'])->name('change-password');
Route::post('/change-password', [AuthController::class, 'changePassword'])->name('password.change');
// Protected Routes
Route::middleware(['auth'])->group(function () {
// Dashboard
Route::get('/dashboard', [HomeController::class, 'index'])->name('dashboard');
Route::get('/my-profile', [AuthController::class, 'showMyProfile'])->name('my-profile');
// User Management
Route::prefix('user-management')->group(function () {
Route::get('/', [UserManagementController::class, 'index'])->name('user-management.index');
Route::get('/create', [UserManagementController::class, 'create'])->name('user-management.create');
Route::post('/', [UserManagementController::class, 'store'])->name('user-management.store');
Route::get('/{id}/edit', [UserManagementController::class, 'edit'])->name('user-management.edit');
Route::put('/{id}', [UserManagementController::class, 'update'])->name('user-management.update');
Route::delete('/{id}', [UserManagementController::class, 'destroy'])->name('user-management.destroy');
});
// Station Management
Route::prefix('stations')->group(function () {
Route::get('/', [StationController::class, 'index'])->name('stations.index');
Route::get('/create', [StationController::class, 'create'])->name('stations.create');
Route::post('/', [StationController::class, 'store'])->name('stations.store');
Route::get('/{id}/edit', [StationController::class, 'edit'])->name('stations.edit');
Route::put('/{id}', [StationController::class, 'update'])->name('stations.update');
Route::delete('/{id}', [StationController::class, 'destroy'])->name('stations.destroy');
// Fuel Prices
Route::get('/fuel-prices', [StationController::class, 'fuelPrices'])->name('fuel-prices.index');
Route::post('/fuel-prices', [StationController::class, 'updateFuelPrices'])->name('fuel-prices.update');
Route::get('/fuel-prices/schedule', [StationController::class, 'fuelPriceSchedule'])->name('fuel-prices.schedule');
Route::post('/fuel-prices/schedule', [StationController::class, 'storeFuelPriceSchedule'])->name('fuel-prices.schedule.store');
Route::get('/fuel-prices/logs', [StationController::class, 'fuelPriceLogs'])->name('fuel-prices.logs');
});
// Content Management
Route::prefix('content')->group(function () {
// Promotions
Route::get('/promotions', [ContentController::class, 'promotionsIndex'])->name('promotions.index');
Route::get('/promotions/create', [ContentController::class, 'createPromotion'])->name('promotions.create');
Route::post('/promotions', [ContentController::class, 'storePromotion'])->name('promotions.store');
Route::put('/promotions/{id}', [ContentController::class, 'updatePromotion'])->name('promotions.update');
Route::delete('/promotions/{id}', [ContentController::class, 'deletePromotion'])->name('promotions.destroy');
// Notifications
Route::get('/notifications', [ContentController::class, 'notificationsIndex'])->name('notifications.index');
Route::get('/notifications/create', [ContentController::class, 'createNotification'])->name('notifications.create');
Route::post('/notifications', [ContentController::class, 'storeNotification'])->name('notifications.store');
Route::put('/notifications/{id}', [ContentController::class, 'updateNotification'])->name('notifications.update');
Route::delete('/notifications/{id}', [ContentController::class, 'deleteNotification'])->name('notifications.destroy');
// Photo Slider
Route::get('/slides', [ContentController::class, 'slidesIndex'])->name('slides.index');
Route::get('/slides/create', [ContentController::class, 'createSlide'])->name('slides.create');
Route::post('/slides', [ContentController::class, 'storeSlide'])->name('slides.store');
Route::put('/slides/{id}', [ContentController::class, 'updateSlide'])->name('slides.update');
Route::delete('/slides/{id}', [ContentController::class, 'deleteSlide'])->name('slides.destroy');
// Terms and Privacy
Route::get('/terms-and-privacy', [ContentController::class, 'termsAndPrivacy'])->name('terms-and-privacy.index');
Route::put('/terms-and-privacy', [ContentController::class, 'updateTermsAndPrivacy'])->name('terms-and-privacy.update');
});
// Card Member Management
Route::prefix('card-members')->group(function () {
Route::get('/', [CardMemberController::class, 'index'])->name('card-members.index');
Route::get('/create', [CardMemberController::class, 'create'])->name('card-members.create');
Route::post('/', [CardMemberController::class, 'store'])->name('card-members.store');
Route::get('/{id}/edit', [CardMemberController::class, 'edit'])->name('card-members.edit');
Route::put('/{id}', [CardMemberController::class, 'update'])->name('card-members.update');
Route::delete('/{id}', [CardMemberController::class, 'destroy'])->name('card-members.destroy');
// Card Types
Route::get('/types', [CardMemberController::class, 'cardTypes'])->name('card-types.index');
Route::post('/types', [CardMemberController::class, 'storeCardType'])->name('card-types.store');
Route::put('/types/{id}', [CardMemberController::class, 'updateCardType'])->name('card-types.update');
Route::delete('/types/{id}', [CardMemberController::class, 'deleteCardType'])->name('card-types.destroy');
// Top-up
Route::get('/top-up', [CardMemberController::class, 'topUpHistory'])->name('top-up.index');
Route::post('/top-up', [CardMemberController::class, 'processTopUp'])->name('top-up.store');
});
// Reports
Route::prefix('reports')->group(function () {
Route::get('/registration', [ReportsController::class, 'registrationReport'])->name('reports.registration');
Route::get('/top-up-usage', [ReportsController::class, 'topUpUsageReport'])->name('reports.top-up-usage');
Route::get('/mobile-usage', [ReportsController::class, 'mobileUsageReport'])->name('reports.mobile-usage');
Route::get('/station-rating', [ReportsController::class, 'stationRatingReport'])->name('reports.station-rating');
Route::get('/{type}/export', [ReportsController::class, 'exportReport'])->name('reports.export');
});
// System Parameters
Route::prefix('system-parameters')->group(function () {
Route::get('/', [SystemParameterController::class, 'index'])->name('system-parameters.index');
Route::post('/', [SystemParameterController::class, 'store'])->name('system-parameters.store');
Route::put('/{id}', [SystemParameterController::class, 'update'])->name('system-parameters.update');
Route::delete('/{id}', [SystemParameterController::class, 'destroy'])->name('system-parameters.destroy');
});
// Fuel Price Management
Route::prefix('fuel-prices')->group(function () {
// On Demand
Route::get('/on-demand', [FuelPriceController::class, 'onDemand'])->name('fuel-price.on-demand');
Route::post('/on-demand', [FuelPriceController::class, 'updateOnDemand'])->name('fuel-price.on-demand.update');
Route::post('/on-demand/import', [FuelPriceController::class, 'importPrices'])->name('fuel-price.on-demand.import');
Route::get('/on-demand/export', [FuelPriceController::class, 'exportPrices'])->name('fuel-price.on-demand.export');
// Schedule
Route::get('/schedule', [FuelPriceController::class, 'schedule'])->name('fuel-price.schedule');
Route::post('/schedule', [FuelPriceController::class, 'storeSchedule'])->name('fuel-price.schedule.store');
Route::put('/schedule/{id}', [FuelPriceController::class, 'updateSchedule'])->name('fuel-price.schedule.update');
Route::delete('/schedule/{id}', [FuelPriceController::class, 'deleteSchedule'])->name('fuel-price.schedule.destroy');
// Logs
Route::get('/logs', [FuelPriceController::class, 'logs'])->name('fuel-price.logs');
});
// Top-up Settings
Route::prefix('top-up-settings')->group(function () {
Route::get('/', [TopUpSettingController::class, 'index'])->name('top-up-settings.index');
Route::post('/', [TopUpSettingController::class, 'store'])->name('top-up-settings.store');
Route::put('/{id}', [TopUpSettingController::class, 'update'])->name('top-up-settings.update');
Route::delete('/{id}', [TopUpSettingController::class, 'destroy'])->name('top-up-settings.destroy');
});
});