web.php 10.1 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\JobTitlesController;
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;
use App\Http\Controllers\Admin\CompanyController;
use App\Http\Controllers\Admin\Ad_EmployersController;
use App\Http\Controllers\Admin\MsgAnswersController;
use App\Http\Controllers\Admin\GroupsController;


/*
|--------------------------------------------------------------------------
| 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', [Ad_EmployersController::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');
    /*
    * кабинет - CRUD-операции по справочнику должности
     *
     */
    Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);

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

    /*
     * Расписанный подход в описании каждой директорий групп пользователей.
     */
    // кабинет - группы пользователей
    Route::get('groups', [GroupsController::class, 'index'])->name('groups');
    // кабинет - добавление форма группы пользователей
    Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
    // кабинет - сохранение формы группы пользователей
    Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
    // кабинет - редактирование форма группы пользователей
    Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
    // кабинет - сохранение редактированной формы группы пользователей
    Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
   // кабинет - удаление группы пользователей
    Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');

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

    /////редактор////// кабинет - редактор сайта////////////////////////
    Route::get('editor-site', [CompanyController::class, 'editor'])->name('editor-site');

    // кабинет - редактор шапки-футера сайта
    Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');

    // кабинет - редактор должности на главной
    Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');

    // кабинет - редактор работодатели на главной
    Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');

    // кабинет - редактор seo-сайта
    Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');

    // кабинет - редактор страниц
    Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');

    // кабинет - реклама сайта
    Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
    ////////////////////////////////////////////////////////////////////////

    // кабинет - отзывы о работодателе для модерации
    Route::get('answers', [EmployersController::class, 'answers'])->name('answers');

    // Общая страница статистики
    Route::get('statics', function () {
        return view('admin.static.index');
    })->name('statics');

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

    // кабинет - статистика вакансий работодателя
    Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');

    // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
    Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');

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

});