-- 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;
