INSERT INTO films_genres (name) VALUES
    ('Боевик'),
    ('Комедия'),
    ('Драма'),
    ('Фантастика'),
    ('Ужасы'),
    ('Триллер'),
    ('Мелодрама'),
    ('Приключения'),
    ('Фэнтези'),
    ('Мистика'),
    ('Детектив'),
    ('Анимация'),
    ('Документальный'),
    ('Исторический'),
    ('Вестерн');

   
INSERT INTO films_films (name, duration, release_date) VALUES
    ('Звёздные войны: Эпизод IV – Новая надежда', 121, '1977-05-25'),
    ('Властелин колец: Братство Кольца', 178, '2001-12-19'),
    ('Зеленая миля', 189, '1999-12-10'),
    ('Форрест Гамп', 142, '1994-06-23'),
    ('Побег из Шоушенка', 142, '1994-09-10'),
    ('Начало', 148, '2010-07-16'),
    ('Матрица', 136, '1999-03-31'),
    ('Властелин колец: Возвращение Короля', 201, '2003-12-17'),
    ('Интерстеллар', 169, '2014-11-06'),
    ('1+1', 112, '2011-11-02'),
    ('Криминальное чтиво', 154, '1994-09-10'),
    ('Король Лев', 88, '1994-06-15'),
    ('Бойцовский клуб', 139, '1999-10-15'),
    ('Темный рыцарь', 152, '2008-07-18'),
    ('Гладиатор', 155, '2000-05-01'),
    ('Пираты Карибского моря: Проклятие Черной жемчужины', 143, '2003-07-09'),
    ('Хороший, плохой, злой', 161, '1966-12-23'),
    ('Леон', 110, '1994-09-14'),
    ('Терминатор 2: Судный день', 137, '1991-07-03'),
    ('ВАЛЛ·И', 98, '2008-06-27'),
    ('Джанго освобожденный', 165, '2012-12-25'),
    ('Исчезнувшая', 145, '2014-10-02'),
    ('Храброе сердце', 177, '1995-09-08'),
    ('Гарри Поттер и Философский камень', 152, '2001-11-16'),
    ('Индиана Джонс: В поисках утраченного ковчега', 115, '1981-06-12'),
    ('Красота по-американски', 122, '1999-09-08'),
    ('Трасса 60', 92, '2001-02-09'),
    ('Храбрая сердцем', 93, '2012-06-22'),
    ('Кунг-фу Панда', 92, '2008-06-05'),
    ('Рататуй', 111, '2007-06-28'),
    ('Голодные игры', 142, '2012-03-12'),
    ('Мадагаскар', 86, '2005-05-25'),
    ('Человек-паук', 121, '2002-05-03'),
    ('Кунг-фу Панда 2', 91, '2011-05-26'),
    ('Мечтатели', 127, '2003-11-19'),
    ('Гарри Поттер и узник Азкабана', 142, '2004-05-31'),
    ('Люди Икс', 104, '2000-07-13'),
    ('Хранители', 162, '2009-03-06'),
    ('Трансформеры', 144, '2007-06-27'),
    ('Темный рыцарь: Возрождение легенды', 164, '2012-07-16');
   
   
INSERT INTO films_films_genres (film_id, genre_id) VALUES
    (1, 4),   -- Звёздные войны: Эпизод IV – Новая надежда - Фантастика
    (1, 7),   -- Звёздные войны: Эпизод IV – Новая надежда - Приключения
    (2, 4),   -- Властелин колец: Братство Кольца - Фантастика
    (2, 7),   -- Властелин колец: Братство Кольца - Приключения
    (3, 3),   -- Зеленая миля - Драма
    (4, 3),   -- Форрест Гамп - Драма
    (5, 3),   -- Побег из Шоушенка - Драма
    (6, 4),   -- Начало - Фантастика
    (6, 5),   -- Начало - Триллер
    (7, 4),   -- Матрица - Фантастика
    (8, 4),   -- Властелин колец: Возвращение Короля - Фантастика
    (8, 7),   -- Властелин колец: Возвращение Короля - Приключения
    (9, 4),   -- Интерстеллар - Фантастика
    (9, 3),   -- Интерстеллар - Драма
    (10, 3),  -- 1+1 - Драма
    (10, 8),  -- 1+1 - Мелодрама
    (11, 5),  -- Криминальное чтиво - Ужасы
    (12, 7),  -- Король Лев - Приключения
    (13, 6),  -- Бойцовский клуб - Триллер
    (13, 5),  -- Бойцовский клуб - Ужасы
    (14, 6),  -- Темный рыцарь - Триллер
    (14, 5),  -- Темный рыцарь - Ужасы
    (15, 6),  -- Гладиатор - Триллер
    (16, 7),  -- Пираты Карибского моря: Проклятие Черной жемчужины - Приключения
    (17, 8),  -- Хороший, плохой, злой - Мелодрама
    (17, 2),  -- Хороший, плохой, злой - Комедия
    (18, 9),  -- Леон - Фэнтези
    (18, 6),  -- Леон - Триллер
    (19, 9),  -- Терминатор 2: Судный день - Фэнтези
    (19, 4),  -- Терминатор 2: Судный день - Фантастика
    (20, 1),  -- ВАЛЛ·И - Боевик
    (20, 4),  -- ВАЛЛ·И - Фантастика
    (21, 6),  -- Джанго освобожденный - Триллер
    (22, 6),  -- Исчезнувшая - Триллер
    (23, 6),  -- Храброе сердце - Триллер
    (24, 7),  -- Гарри Поттер и Философский камень - Приключения
    (24, 9),  -- Гарри Поттер и Философский камень - Фэнтези
    (25, 6),  -- Индиана Джонс: В поисках утраченного ковчега - Триллер
    (25, 7),  -- Индиана Джонс: В поисках утраченного ковчега - Приключения
    (26, 8),  -- Красота по-американски - Мелодрама
    (26, 2),  -- Красота по-американски - Комедия
    (27, 1),  -- Трасса 60 - Боевик
    (28, 9),  -- Храбрая сердцем - Фэнтези
    (28, 6),  -- Храбрая сердцем - Триллер
    (29, 10), -- Кунг-фу Панда - Мистика
    (29, 11), -- Кунг-фу Панда - Детектив
    (30, 10), -- Рататуй - Мистика
    (30, 11), -- Рататуй - Детектив
    (31, 11), -- Голодные игры - Детектив
    (31, 6),  -- Голодные игры - Триллер
    (32, 10), -- Мадагаскар - Мистика
    (32, 11), -- Мадагаскар - Детектив
    (33, 12), -- Человек-паук - Анимация
    (33, 1),  -- Человек-паук - Боевик
    (34, 10), -- Кунг-фу Панда 2 - Мистика
    (34, 11), -- Кунг-фу Панда 2 - Детектив
    (35, 3),  -- Мечтатели - Драма
    (36, 4),  -- Гарри Поттер и узник Азкабана - Фантастика
    (36, 7),  -- Гарри Поттер и узник Азкабана - Приключения
    (37, 1),  -- Люди Икс - Боевик
    (37, 4),  -- Люди Икс - Фантастика
    (38, 7),  -- Хранители - Приключения
    (38, 4),  -- Хранители - Фантастика
    (39, 1),  -- Трансформеры - Боевик
    (39, 4),  -- Трансформеры - Фантастика
    (40, 6),  -- Темный рыцарь: Возрождение легенды - Триллер
    (40, 7);  -- Темный рыцарь: Возрождение легенды - Приключения

UPDATE films_films
SET description = 
    CASE 
        WHEN name = 'Звёздные войны: Эпизод IV – Новая надежда' THEN 'Описание Звёздные войны: Эпизод IV – Новая надежда'
        WHEN name = 'Властелин колец: Братство Кольца' THEN 'Описание Властелин колец: Братство Кольца'
        WHEN name = 'Зеленая миля' THEN 'Описание Зеленая миля'
        WHEN name = 'Форрест Гамп' THEN 'Описание Форрест Гамп'
        WHEN name = 'Побег из Шоушенка' THEN 'Описание Побег из Шоушенка'
        WHEN name = 'Начало' THEN 'Описание Начало'
        WHEN name = 'Матрица' THEN 'Описание Матрица'
        WHEN name = 'Властелин колец: Возвращение Короля' THEN 'Описание Властелин колец: Возвращение Короля'
        WHEN name = 'Интерстеллар' THEN 'Описание Интерстеллар'
        WHEN name = '1+1' THEN 'Описание 1+1'
        WHEN name = 'Криминальное чтиво' THEN 'Описание Криминальное чтиво'
        WHEN name = 'Король Лев' THEN 'Описание Король Лев'
        WHEN name = 'Бойцовский клуб' THEN 'Описание Бойцовский клуб'
        WHEN name = 'Темный рыцарь' THEN 'Описание Темный рыцарь'
        WHEN name = 'Гладиатор' THEN 'Описание Гладиатор'
        WHEN name = 'Пираты Карибского моря: Проклятие Черной жемчужины' THEN 'Описание Пираты Карибского моря: Проклятие Черной жемчужины'
        WHEN name = 'Хороший, плохой, злой' THEN 'Описание Хороший, плохой, злой'
        WHEN name = 'Леон' THEN 'Описание Леон'
        WHEN name = 'Терминатор 2: Судный день' THEN 'Описание Терминатор 2: Судный день'
        WHEN name = 'ВАЛЛ·И' THEN 'Описание ВАЛЛ·И'
        WHEN name = 'Джанго освобожденный' THEN 'Описание Джанго освобожденный'
        WHEN name = 'Исчезнувшая' THEN 'Описание Исчезнувшая'
        WHEN name = 'Храброе сердце' THEN 'Описание Храброе сердце'
        WHEN name = 'Гарри Поттер и Философский камень' THEN 'Описание Гарри Поттер и Философский камень'
        WHEN name = 'Индиана Джонс: В поисках утраченного ковчега' THEN 'Описание Индиана Джонс: В поисках утраченного ковчега'
        WHEN name = 'Красота по-американски' THEN 'Описание Красота по-американски'
        WHEN name = 'Трасса 60' THEN 'Описание Трасса 60'
        WHEN name = 'Храбрая сердцем' THEN 'Описание Храбрая сердцем'
        WHEN name = 'Кунг-фу Панда' THEN 'Описание Кунг-фу Панда'
        WHEN name = 'Рататуй' THEN 'Описание Рататуй'
        WHEN name = 'Голодные игры' THEN 'Описание Голодные игры'
        WHEN name = 'Мадагаскар' THEN 'Описание Мадагаскар'
        WHEN name = 'Человек-паук' THEN 'Описание Человек-паук'
        WHEN name = 'Кунг-фу Панда 2' THEN 'Описание Кунг-фу Панда 2'
        WHEN name = 'Мечтатели' THEN 'Описание Мечтатели'
        WHEN name = 'Гарри Поттер и узник Азкабана' THEN 'Описание Гарри Поттер и узник Азкабана'
        WHEN name = 'Люди Икс' THEN 'Описание Люди Икс'
        WHEN name = 'Хранители' THEN 'Описание Хранители'
        WHEN name = 'Трансформеры' THEN 'Описание Трансформеры'
        WHEN name = 'Темный рыцарь: Возрождение легенды' THEN 'Описание Темный рыцарь: Возрождение легенды'
    END;


-- Заполнение таблицы timetable_auditoriums
INSERT INTO timetable_auditoriums (number, row_count) VALUES
    ('Зал 1', 10),  -- Зал 1, 10 рядов
    ('Зал 2', 8),   -- Зал 2, 8 рядов
    ('Зал 3', 12),  -- Зал 3, 12 рядов
    ('Зал 4', 9),   -- Зал 4, 9 рядов
    ('Зал 5', 11),  -- Зал 5, 11 рядов
    ('Зал 6', 7),   -- Зал 6, 7 рядов
    ('Зал 7', 10);  -- Зал 7, 10 рядов

    
    
-- Предполагается, что в каждом зале 10 рядов и в каждом ряду 10 кресел.
-- Создаем вспомогательную таблицу numbers с числами от 1 до 10
CREATE TABLE numbers (n INTEGER PRIMARY KEY);

INSERT INTO numbers (n) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

-- Вставляем данные в таблицу timetable_rows для каждого зала
-- Предполагается, что в каждом зале 10 рядов и в каждом ряду 10 кресел.

-- Для Зала 1
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    1 AS auditorium_id  -- ID Зала 1
FROM
    numbers;
   
-- Для Зала 2
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    2 AS auditorium_id  -- ID Зала 2
FROM
    numbers;
   
-- Для Зала 3
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    3 AS auditorium_id  -- ID Зала 3
FROM
    numbers;
   
-- Для Зала 4
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    4 AS auditorium_id  -- ID Зала 4
FROM
    numbers;
   
-- Для Зала 5
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    5 AS auditorium_id  -- ID Зала 5
FROM
    numbers;
   
-- Для Зала 6
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    6 AS auditorium_id  -- ID Зала 6
FROM
    numbers;
   
-- Для Зала 7
INSERT INTO timetable_rows (row_number, column_count, auditorium_id)
SELECT
    n AS row_number,
    10 AS column_count,  -- Количество кресел в ряду
    7 AS auditorium_id  -- ID Зала 7
FROM
    numbers;
   

   
-- Определим временной промежуток в рамках рабочего времени кинотеатра (8:00 - 22:00)
WITH RECURSIVE session_times AS (
  SELECT strftime('%Y-%m-%d %H:%M', 'now', 'start of day', '+8 hours') AS start_time
  UNION ALL
  SELECT strftime('%Y-%m-%d %H:%M', start_time, '+2 hours') FROM session_times
  WHERE start_time < strftime('%Y-%m-%d %H:%M', 'now', 'start of day', '+22 hours')
)


--INSERT INTO timetable_film_sessions (start_datetime, price, auditorium_id, film_id)
SELECT 
    CASE 
        WHEN MAX(end_datetime) IS NULL THEN start_datetime
        ELSE MAX(end_datetime)
    END AS start_time,
    500.00 AS price, 
    auditoriums.id AS auditorium_id,
    films.id AS film_id
FROM 
    session_times
CROSS JOIN
    films_films AS films
CROSS JOIN
    timetable_auditoriums AS auditoriums
LEFT JOIN 
    timetable_film_sessions AS prev_sessions
ON 
    auditoriums.id = prev_sessions.auditorium_id
AND 
    prev_sessions.start_datetime <= start_datetime
AND
    prev_sessions.start_datetime + (films.duration || ' MINUTES') >= start_datetime
GROUP BY
    start_time, auditoriums.id, films.id
ORDER BY
    start_time, film_id;


   
-- Заполнение таблицы Режиссеров (Directors)
INSERT INTO films_directors (first_name, last_name) VALUES
    ('Кристофер', 'Нолан'),
    ('Стивен', 'Спилберг'),
    ('Квентин', 'Тарантино'),
    ('Мартин', 'Скорсезе'),
    ('Дэвид', 'Финчер'),
    ('Питер', 'Джексон'),
    ('Ридли', 'Скотт'),
    ('Джеймс', 'Кэмерон'),
    ('Стэнли', 'Кубрик'),
    ('Фрэнсис', 'Форд Коппола'),
    ('Альфред', 'Хичкок'),
    ('Джордж', 'Лукас');

-- Заполнение таблицы Актеров (Actors)
INSERT INTO films_actors (first_name, last_name) VALUES
    ('Том', 'Хэнкс'),
    ('Леонардо', 'ДиКаприо'),
    ('Мэттью', 'МакКонахи'),
    ('Дензел', 'Вашингтон'),
    ('Брэд', 'Питт'),
    ('Мэрил', 'Стрип'),
    ('Натали', 'Портман'),
    ('Джонни', 'Депп'),
    ('Кейт', 'Бланшетт'),
    ('Энди', 'Серкис'),
    ('Сигурни', 'Уивер'),
    ('Кейт', 'Уинслет');

-- Заполнение таблицы Стран (Countries)
INSERT INTO films_countries (name) VALUES
    ('США'),
    ('Великобритания'),
    ('Франция'),
    ('Германия'),
    ('Италия'),
    ('Канада'),
    ('Япония'),
    ('Индия'),
    ('Австралия'),
    ('Россия'),
    ('Китай'),
    ('Испания');

   

