Files
StikeArena_chrt/DATABASE_UPDATE.sql
T
2026-06-02 17:45:29 +05:00

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;