+ availability

This commit is contained in:
2026-01-26 09:06:06 +00:00
parent 18aad4749f
commit a448fce756
34 changed files with 1089 additions and 578 deletions

View File

@@ -4,34 +4,33 @@ use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Admin\HotelController;
use App\Http\Controllers\Admin\AuthController;
Route::get('/admin/login', [AuthController::class, 'showLoginForm'])->name('admin.login.form');
Route::post('/admin/login', [AuthController::class, 'login'])->name('admin.login');
// Вход
Route::get('/admin/login', [\App\Http\Controllers\Admin\AuthController::class, 'showLoginForm'])->name('admin.login.form');
Route::post('/admin/login', [\App\Http\Controllers\Admin\AuthController::class, 'login'])->name('admin.login');
// Админка (требует авторизации)
Route::middleware('auth')->prefix('admin')->group(function () {
Route::get('/hotels', [HotelController::class, 'index'])->name('admin.hotels.index');
Route::get('/hotels/create', [HotelController::class, 'create'])->name('admin.hotels.create');
Route::post('/hotels', [HotelController::class, 'store'])->name('admin.hotels.store');
Route::get('/hotels/{hotel}/edit', [HotelController::class, 'edit'])->name('admin.hotels.edit');
Route::put('/hotels/{hotel}', [HotelController::class, 'update'])->name('admin.hotels.update');
Route::delete('/hotels/{hotel}', [HotelController::class, 'destroy'])->name('admin.hotels.destroy');
// Отели
Route::get('/hotels', [\App\Http\Controllers\Admin\HotelController::class, 'index'])->name('admin.hotels.index');
Route::get('/hotels/create', [\App\Http\Controllers\Admin\HotelController::class, 'create'])->name('admin.hotels.create');
Route::post('/hotels', [\App\Http\Controllers\Admin\HotelController::class, 'store'])->name('admin.hotels.store');
Route::get('/hotels/{hotel}/edit', [\App\Http\Controllers\Admin\HotelController::class, 'edit'])->name('admin.hotels.edit');
Route::put('/hotels/{hotel}', [\App\Http\Controllers\Admin\HotelController::class, 'update'])->name('admin.hotels.update');
Route::delete('/hotels/{hotel}', [\App\Http\Controllers\Admin\HotelController::class, 'destroy'])->name('admin.hotels.destroy');
// Шахматка для отеля
Route::get('/hotels/{hotelId}/calendar', [\App\Http\Controllers\Admin\HotelController::class, 'calendar'])->name('admin.hotels.calendar');
// Сохранение периода
Route::post('/room-types/{roomType}/availability', [\App\Http\Controllers\Admin\AvailabilityController::class, 'store'])->name('admin.availability.store');
// Удаление периода
Route::delete('/availability/{availability}', [\App\Http\Controllers\Admin\AvailabilityController::class, 'destroy'])->name('admin.availability.destroy');
// Бронирования
Route::get('/bookings/create', [\App\Http\Controllers\Admin\BookingController::class, 'create'])->name('admin.bookings.create');
Route::post('/bookings', [\App\Http\Controllers\Admin\BookingController::class, 'store'])->name('admin.bookings.store');
Route::post('/logout', [AuthController::class, 'logout'])->name('admin.logout');
// Выход
Route::post('/logout', [\App\Http\Controllers\Admin\AuthController::class, 'logout'])->name('admin.logout');
});
// → форма входа
Route::get('/admin/login', [AuthController::class, 'showLoginForm'])->name('admin.login.form');
Route::post('/admin/login', [AuthController::class, 'login'])->name('admin.login');
// → админка
Route::middleware('auth')->prefix('admin')->group(function () {
Route::get('/hotels', [HotelController::class, 'index'])->name('admin.hotels.index');
Route::post('/logout', [AuthController::class, 'logout'])->name('admin.logout');
});
Route::get('/', function () {
return view('welcome');
});
Route::get('/{any?}', function () {
return view('app');
})->where('any', '.*');
// Вход
Route::get('/admin/login', [\App\Http\Controllers\Admin\AuthController::class, 'showLoginForm'])->name('admin.login.form');
Route::post('/admin/login', [\App\Http\Controllers\Admin\AuthController::class, 'login'])->name('admin.login');