dealhub/routes/web.php
kusowl 16c9ff3cee feat: implement user interaction system with like functionality
- Updated interaction models and relations for handling of user-deal interactions.
- Added frontend interactivity with `interaction.js` for toggling like buttons.
2026-01-15 19:09:24 +05:30

48 lines
1.8 KiB
PHP

<?php
use App\Enums\UserTypes;
use App\Http\Controllers\AuthenticatedUserController;
use App\Http\Controllers\Broker\BrokerDashboardController;
use App\Http\Controllers\Broker\BrokerProfileController;
use App\Http\Controllers\BrokerDealController;
use App\Http\Controllers\ExplorePageController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\InteractionController;
use App\Http\Controllers\RegisteredUserController;
use App\Http\Middleware\HasRole;
use Illuminate\Support\Facades\Route;
Route::get('/', HomeController::class)->name('home');
Route::middleware('guest')->group(function () {
Route::resource('/login', AuthenticatedUserController::class)
->middleware('throttle:6,1')
->only(['create', 'store']);
Route::resource('/register', RegisteredUserController::class)->only(['create', 'store']);
});
Route::middleware('auth')->group(function () {
Route::delete('/logout', [AuthenticatedUserController::class, 'destroy'])->name('logout');
Route::get('/explore', ExplorePageController::class)->name('explore');
Route::view('/admin/dashboard', 'dashboards.admin.index')
->middleware(HasRole::class.':'.UserTypes::Admin->value)
->name('admin.dashboard');
Route::prefix('/broker')
->name('broker.')
->middleware(HasRole::class.':'.UserTypes::Broker->value)
->group(function () {
Route::get('dashboard', [BrokerDashboardController::class, 'index'])->name('dashboard');
Route::resource('deals', BrokerDealController::class)->except('show');
Route::resource('profile', BrokerProfileController::class)->except('index', 'store', 'create');
});
Route::post('/like/{deal}', [InteractionController::class, 'like'])
->middleware('throttle:30,1')
->name('like');
});