coursework tasks 1 to 10

This commit is contained in:
Владимир
2026-01-07 11:55:53 +00:00
parent 9f637e6be7
commit bbe639b604
13 changed files with 545 additions and 51 deletions

View File

@@ -1,16 +1,45 @@
<?php
use App\Http\Controllers\UserController;
use App\Http\Controllers\ServicesController;
use App\Http\Controllers\BookingsController;
use App\Http\Controllers\AvailabilitiesController;
use App\Http\Controllers\CategoriesController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CategoriesController;
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:sanctum');
// РЕГИСТРАЦИЯ ТОЛЬКО КЛИЕНТОВ (публичный)
Route::post('/register', [UserController::class, 'register']);
// Существующие роуты categories
Route::get('/categories', [CategoriesController::class, 'index'])->middleware('auth:sanctum');
Route::get('/categories/{id}', [CategoriesController::class, 'show']);
Route::post( '/categories', [CategoriesController::class, 'create']);
Route::post( '/users', [UserController::class, 'create']);
Route::post('/categories', [CategoriesController::class, 'create']);
// ПУБЛИЧНЫЙ API доступности (без авторизации)
Route::get('/availability', [AvailabilitiesController::class, 'publicAvailability']);
// КЛИЕНТСКИЕ РОУТЫ БРОНИРОВАНИЙ (auth:sanctum)
Route::middleware('auth:sanctum')->group(function () {
Route::post('/bookings', [BookingsController::class, 'store']); // Пункт 9
Route::post('/bookings/{id}/cancel', [BookingsController::class, 'cancel']); // Пункт 10
});
// АДМИН РОУТЫ - ТОЛЬКО employee/admin (role:employee)
Route::middleware(['auth:sanctum', 'role:employee'])->prefix('admin')->group(function () {
// CRUD услуги
Route::get('/services', [ServicesController::class, 'index']);
Route::post('/services', [ServicesController::class, 'store']);
Route::put('/services/{id}', [ServicesController::class, 'update']);
Route::delete('/services/{id}', [ServicesController::class, 'destroy']);
// CRUD расписание
Route::get('/availabilities', [AvailabilitiesController::class, 'index']);
Route::post('/availabilities', [AvailabilitiesController::class, 'store']);
Route::post('/availabilities/bulk', [AvailabilitiesController::class, 'bulkStore']);
Route::delete('/availabilities/{id}', [AvailabilitiesController::class, 'destroy']);
});