web.php 6.22 KB
<?php

use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\CategoryController;
use App\Http\Controllers\Admin\EmployersController;
use App\Http\Controllers\Admin\UsersController;
use App\Http\Controllers\Admin\WorkersController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\RegisterController;
use App\Models\User;
use App\Http\Controllers\MainController;
use App\Http\Controllers\HomeController;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| 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('welcome');
})->name('index');
*/
Route::get('/', [MainController::class, 'index'])->name('index');

//Роуты авторизации, регистрации, восстановления, аутентификации
Auth::routes(['verify' => true]);
//Личный кабинет пользователя
Route::get('/home', [HomeController::class, 'index'])->name('home');

/*
Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
    $user = User::where('email',$request->input('email'))->first();

    $user->sendEmailVerificationNotification();

    return 'your response';
})->middleware('throttle:6,1')->name('verification.resend');
*/

// Авторизация, регистрация в админку
Route::group([
    'as' => 'admin.', // имя маршрута, например auth.index
    'prefix' => 'admin', // префикс маршрута, например auth/index
    'middleware' => ['guest'],
], function () {
// Форма регистрации
    Route::get('register', [AdminController::class, 'register'])->name('register');

// Создание пользователя
    Route::post('register', [AdminController::class, 'create'])->name('create');
//Форма входа
    Route::get('login', [AdminController::class, 'login'])->name('login');

// аутентификация
    Route::post('login', [AdminController::class, 'autenticate'])->name('auth');

});

// Личный кабинет админки
Route::group([
    'as' => 'admin.', // имя маршрута, например auth.index
    'prefix' => 'admin', // префикс маршрута, например auth/index
    'middleware' => ['auth'], ['admin'],
], function() {

    // выход
    Route::get('logout', [AdminController::class, 'logout'])->name('logout');

    // кабинет главная страница
    Route::get('cabinet', [AdminController::class, 'index'])->name('index');

    // кабинет профиль админа - форма
    Route::get('profile', [AdminController::class, 'profile'])->name('profile');
   // кабинет профиль админа - сохранение формы
    Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');

    // кабинет профиль - форма пароли
    Route::get('password', [AdminController::class, 'profile_password'])->name('password');
    // кабинет профиль - сохранение формы пароля
    Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');


    // кабинет профиль пользователя - форма
    Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
    // кабинет профиль пользователя - сохранение формы
    Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');

    // кабинет профиль работодатель - форма
    Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
    // кабинет профиль работодатель - сохранение формы
    Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');

    // кабинет профиль работник - форма
    Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile');

    // кабинет настройки - форма
    Route::get('config', [AdminController::class, 'config_form'])->name('config');
    // кабинет настройки сохранение формы
    Route::post('config', [AdminController::class, 'store_config'])->name('store_config');

    // кабинет - пользователи
    Route::get('users', [UsersController::class, 'index'])->name('users');

    // кабинет - пользователи
    Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');

    // кабинет - работодатели
    Route::get('employers', [EmployersController::class, 'index'])->name('employers');

    // кабинет - соискатели
    Route::get('workers', [WorkersController::class, 'index'])->name('workers');

    // кабинет - вакансии
    Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers');

    // кабинет - категории
    //Route::get('categories', [AdminController::class, 'index'])->name('categories');
    /*
        * CRUD-операции над настройками Компании
        */
    Route::resource('categories', CategoryController::class, ['except' => ['show']]);


    // кабинет - должности
    Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');

    // кабинет - сообщения
    Route::get('messages', [AdminController::class, 'index'])->name('messages');

    // кабинет - группы пользователей
    Route::get('groups', [AdminController::class, 'index'])->name('groups');

    // кабинет - список админов
    Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
});