39 lines
2.4 KiB
SQL
39 lines
2.4 KiB
SQL
-- 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;
|