-- SQL инструкция для добавления функционала бронирования с временем -- Выполните этот скрипт в вашей MySQL базе данных -- Создание таблицы bookings для хранения бронирований CREATE TABLE IF NOT EXISTS `bookings` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `type` VARCHAR(50) NOT NULL COMMENT 'Тип активности: pc, ps, tv, zayvka', `room` VARCHAR(50) NOT NULL COMMENT 'Тип комнаты: solo, duo, trio, bootcamp 5, bootcamp 6', `date_time` DATETIME NOT NULL COMMENT 'Полная дата и время бронирования', `time_slot` VARCHAR(5) NOT NULL COMMENT 'Временной слот в формате HH:00 (например, 14:00)', `name` VARCHAR(255) NOT NULL COMMENT 'Имя клиента', `game` VARCHAR(255) DEFAULT NULL COMMENT 'Название игры (опционально)', `contact` VARCHAR(50) NOT NULL COMMENT 'Контактный номер телефона', `contact_method` VARCHAR(20) DEFAULT NULL COMMENT 'Способ связи: telegram, whatsapp, phone', `status` ENUM('pending', 'confirmed', 'cancelled') DEFAULT 'pending' COMMENT 'Статус бронирования', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания записи', PRIMARY KEY (`id`), INDEX `idx_date_room_time` (`date_time`, `room`, `time_slot`), INDEX `idx_status` (`status`), INDEX `idx_date` (DATE(`date_time`)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Таблица бронирований'; -- Пример запроса для проверки структуры таблицы: -- DESCRIBE bookings; -- Пример запроса для просмотра всех бронирований: -- SELECT * FROM bookings ORDER BY date_time DESC; -- Пример запроса для просмотра бронирований на конкретную дату: -- SELECT * FROM bookings WHERE DATE(date_time) = '2026-01-25' ORDER BY time_slot; -- Пример запроса для подсчета занятых слотов по времени и комнате: -- SELECT time_slot, room, COUNT(*) as booked_count -- FROM bookings -- WHERE DATE(date_time) = '2026-01-25' -- AND room = 'solo' -- AND status != 'cancelled' -- GROUP BY time_slot, room;