diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..8af972cde
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,3 @@
+/gradlew text eol=lf
+*.bat text eol=crlf
+*.jar binary
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..a186a8b60
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,224 @@
+HELP.md
+.gradle
+build/
+!gradle/wrapper/gradle-wrapper.jar
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+# Created by https://www.toptal.com/developers/gitignore/api/java,intellij,windows,gradle
+# Edit at https://www.toptal.com/developers/gitignore?templates=java,intellij,windows,gradle
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+# https://plugins.jetbrains.com/plugin/7973-sonarlint
+.idea/**/sonarlint/
+
+# SonarQube Plugin
+# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
+.idea/**/sonarIssues.xml
+
+# Markdown Navigator plugin
+# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
+.idea/**/markdown-navigator.xml
+.idea/**/markdown-navigator-enh.xml
+.idea/**/markdown-navigator/
+
+# Cache file creation bug
+# See https://youtrack.jetbrains.com/issue/JBR-2257
+.idea/$CACHE_FILE$
+
+# CodeStream plugin
+# https://plugins.jetbrains.com/plugin/12206-codestream
+.idea/codestream.xml
+
+# Azure Toolkit for IntelliJ plugin
+# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
+.idea/**/azureSettings.xml
+
+### Java ###
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+replay_pid*
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+### Gradle ###
+**/build/
+!src/**/build/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Avoid ignore Gradle wrappper properties
+!gradle-wrapper.properties
+
+# Cache of project
+.gradletasknamecache
+
+### Gradle Patch ###
+# Java heap dump
+*.hprof
+
+# End of https://www.toptal.com/developers/gitignore/api/java,intellij,windows,gradle
+
+# Ignore .env file
+.env
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000000000..8fd8b5976
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+# Use an official OpenJDK image as the base image
+FROM openjdk:21-jdk-slim
+
+# Set the working directory
+WORKDIR /app
+
+# Copy the build artifact into the container
+COPY build/libs/*.jar app.jar
+
+# Expose the application port
+EXPOSE 8080
+
+# Run the application
+ENTRYPOINT ["java", "-jar", "app.jar"]
diff --git a/README.md b/README.md
index 5fcc66b4d..d2cfb6ee7 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,92 @@
## [본 과정] 이커머스 핵심 프로세스 구현
[단기 스킬업 Redis 교육 과정](https://hh-skillup.oopy.io/) 을 통해 상품 조회 및 주문 과정을 구현하며 현업에서 발생하는 문제를 Redis의 핵심 기술을 통해 해결합니다.
> Indexing, Caching을 통한 성능 개선 / 단계별 락 구현을 통한 동시성 이슈 해결 (낙관적/비관적 락, 분산락 등)
+
+---
+
+## 개발환경
+>- Spring Boot 3.4.1
+>- Java 21
+>- Gradle
+>- JPA
+>- MySQL
+>- Docker Compose
+>- IntelliJ Http Request
+
+**Clean Code 작성 요구 사항**
+>- 가독성 (클래스, 변수, 메서드 이름)
+>- 일관된 컨벤션 (불필요한 줄바꿈은 없는지 등)
[코딩컨벤션 참고](https://naver.github.io/hackday-conventions-java/#_%EA%B3%B5%EB%B0%B1_whitespace)
+>- 스트림, 람다, Optional 을 적절히 사용
+>- 중복 코드는 없는지
+>- 역할 및 책임 분리가 잘 되어 있는지
+
+**참고 사항**
+>- 해당 프로젝트에서 PK는 편의상 Auto Increment 를 사용하나, 현업에서는 UUID를 사용하여 PK를 사용하는 추세임.(TimeStamp를 결합하여 순서도 함께 관리)
+
+---
+
+## [1주차] 아키텍처 설계
+
+### 테이블 구조
+
+테이블 : 영화, 상영관, 상영시간표, 좌석, 회원, 예매
+>- 영화 썸네일 이미지는 URL로만 사용하므로 편의상 파일 테이블을 따로 생성하지 않음.
+>- 공통코드는 공통코드 테이블을 생성하지 않고 ENUM으로 관리하며, DB컬럼명을 `_cd` 어미를 붙여 구분하였음 (영상물 등급, 장르, 좌석유형)
+
+---
+
+### 아키텍처(Hexagonal Architecture)
+- `cinema-core`
+
=> *도메인, 엔티티, 비즈니스 로직*
+ * 비즈니스 로직의 중심으로, 외부 변화에 의존하지 않도록 설계.
+ * 영화, 상영 시간표 등의 도메인 모델과 관련 규칙 정의.
+- `cinema-application`
+
=> *유스케이스(Use Case)*
+ * 도메인 로직을 호출하고 조합하여 시스템의 흐름을 관리.
+ * 입력(사용자 요청)과 출력(결과 반환)을 조정.
+- `cinema-adapter`
+
=> *(Inbound) REST Controller, CLI*
+ * 사용자나 외부 세계의 요청을 애플리케이션에 전달.
+
+ => *(Outbound) JPA Repository, External API*
+ * 애플리케이션의 요청을 외부 시스템(DB, API 등)으로 전달.
+- `cinema-infra`
+
=> *DB 연결, 외부 라이브러리 설정*
+ * 기술적인 환경과 세부 설정을 처리.
+- `cinema-common`
+
=> *공통으로 사용할 수 있는 유틸리티, 상수, 예외 처리 클래스*
+ * 도메인 및 유스케이스와 독립적인 범용 코드를 관리.
+ * 비즈니스 로직과 관련 없는 코드만 포함하여 비대화 방지.
+> 외부 변화에 대한 의존성을 최소화하기 위하여 Domain 관련한 부분은 `cinema-core` 모듈로 생성하였음.
+> `cinema-application`은 전체 시스템의 흐름과 연결을 관리하며 도메인 로직을 호출하고 조합하여 유스케이스(사용 시나리오)를 처리함.
+> `cinema-adapter`은 외부 세계와 연결하는 모듈로서 역할을 하며, 입력(Inbound)과 출력(Outbound)으로 나뉨.
+> 또한, Port를 구현하여 `cinema-application`이 도메인과 외부 시스템을 매끄럽게 조작할 수 있도록 도움.
+> `cinema-infra`는 기술적인 환경을 세팅하는 모듈로 데이터베이스 연결 설정, 외부 라이브러리 설정 등을 함.
+> `cinema-common` 모듈은 공통으로 사용할 수 있는 유틸을 묶어두어 범용성 있게 구성하였음.
+> 단, 모듈이 비대해지고 강결합이 발생하지 않도록 변화가 적으며 비즈니스 로직과 관련 없는 코드만 사용하도록 명확히 하여야 함.
+
+---
+
+### 해결할 문제
+**(문제)** 애플리케이션 실행 시 다음과 같은 오류 발생하여 정상적으로 실행되지 않음.
+```dockerfile
+***************************
+APPLICATION FAILED TO START
+***************************
+
+Description:
+
+Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
+
+Reason: Failed to determine a suitable driver class
+
+
+Action:
+
+Consider the following:
+ If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
+ If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
+```
+-> compose.yaml, application.yml 파일을 수정해보았으나 해결하지 못하였음. `Docker compose` 실행은 정상적으로 되는 상태이나 app url 연결에 문제가 발생하는 것으로 보임.
+
+**(해결)** Docker 포트 변경하여 해결함. 기존 3306 포트 3307로 변경하여 docker compose up 하여 띄운 후 CinemaApplication 실행하니 정상적으로 실행됨.
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 000000000..6990ddc86
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,73 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot' version '3.4.1'
+ id 'io.spring.dependency-management' version '1.1.7'
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(21)
+ }
+}
+
+configurations {
+ compileOnly {
+ extendsFrom annotationProcessor
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ compileOnly 'org.projectlombok:lombok'
+ developmentOnly 'org.springframework.boot:spring-boot-devtools'
+ annotationProcessor 'org.projectlombok:lombok'
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
+}
+
+subprojects {
+ apply plugin: 'java'
+ apply plugin: 'io.spring.dependency-management'
+
+ repositories {
+ mavenCentral()
+ }
+
+ dependencies {
+ // 공통 의존성 설정
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
+ implementation 'org.springframework.boot:spring-boot-starter'
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+
+ // JUnit 의존성 공통 설정
+ testImplementation platform('org.junit:junit-bom:5.10.0')
+ testImplementation 'org.junit.jupiter:junit-jupiter'
+ }
+
+ tasks.withType(Test) {
+ useJUnitPlatform()
+ }
+
+ configurations {
+ compileOnly {
+ extendsFrom annotationProcessor
+ }
+ }
+}
+
+tasks.withType(Test) {
+ useJUnitPlatform()
+}
+
+tasks.named('bootJar') {
+ mainClass = 'com.cinema.CinemaApplication'
+}
+
diff --git a/cinema-adapter/build.gradle b/cinema-adapter/build.gradle
new file mode 100644
index 000000000..297b7673d
--- /dev/null
+++ b/cinema-adapter/build.gradle
@@ -0,0 +1,20 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot'
+ id 'io.spring.dependency-management' // 루트의 dependency-management 상속
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+dependencies {
+ implementation project(':cinema-application')
+ implementation project(':cinema-core')
+ implementation 'org.springframework.boot:spring-boot-starter'
+ implementation 'org.springframework.boot:spring-boot-starter-web'
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+}
+
+tasks.named('bootJar') {
+ mainClass = 'com.cinema.CinemaApplication'
+}
\ No newline at end of file
diff --git a/cinema-adapter/src/main/java/com/cinema/CinemaApplication.java b/cinema-adapter/src/main/java/com/cinema/CinemaApplication.java
new file mode 100644
index 000000000..dd2607045
--- /dev/null
+++ b/cinema-adapter/src/main/java/com/cinema/CinemaApplication.java
@@ -0,0 +1,14 @@
+package com.cinema;
+
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
+
+@SpringBootApplication
+@EnableJpaAuditing
+public class CinemaApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(CinemaApplication.class, args);
+ }
+}
\ No newline at end of file
diff --git a/cinema-adapter/src/main/java/com/cinema/adapter/controller/MovieController.java b/cinema-adapter/src/main/java/com/cinema/adapter/controller/MovieController.java
new file mode 100644
index 000000000..8b3f1508b
--- /dev/null
+++ b/cinema-adapter/src/main/java/com/cinema/adapter/controller/MovieController.java
@@ -0,0 +1,21 @@
+package com.cinema.adapter.controller;
+
+import com.cinema.application.service.MovieService;
+import com.cinema.core.domain.Movie;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/v1/movies")
+public class MovieController {
+ private final MovieService movieService;
+
+ @GetMapping
+ public List getMovies(@RequestParam(required = false, defaultValue = "false") boolean bookable) {
+ return movieService.getMovies(bookable);
+ }
+}
+
diff --git a/cinema-adapter/src/main/resources/application.yml b/cinema-adapter/src/main/resources/application.yml
new file mode 100644
index 000000000..6cfa7149f
--- /dev/null
+++ b/cinema-adapter/src/main/resources/application.yml
@@ -0,0 +1,15 @@
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3307/cinema?useSSL=false&allowPublicKeyRetrieval=true
+ username: cinema_user
+ password: cinema_password
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ jpa:
+ hibernate:
+ ddl-auto: none # Hibernate가 DDL을 생성하지 않도록 설정
+# naming:
+# physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+# implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
+ properties:
+ hibernate:
+ dialect: org.hibernate.dialect.MySQL8Dialect
diff --git a/cinema-application/build.gradle b/cinema-application/build.gradle
new file mode 100644
index 000000000..878c5d0f2
--- /dev/null
+++ b/cinema-application/build.gradle
@@ -0,0 +1,16 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot'
+ id 'io.spring.dependency-management' // 루트의 dependency-management 상속
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+dependencies {
+ implementation project(':cinema-core')
+ implementation project(':cinema-infra')
+ implementation project(':cinema-common')
+ implementation 'org.mapstruct:mapstruct:1.5.5.Final'
+ annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
+}
\ No newline at end of file
diff --git a/cinema-application/src/main/java/com/cinema/Main.java b/cinema-application/src/main/java/com/cinema/Main.java
new file mode 100644
index 000000000..84ffbc7c7
--- /dev/null
+++ b/cinema-application/src/main/java/com/cinema/Main.java
@@ -0,0 +1,7 @@
+package com.cinema;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/cinema-application/src/main/java/com/cinema/application/dto/MovieDTO.java b/cinema-application/src/main/java/com/cinema/application/dto/MovieDTO.java
new file mode 100644
index 000000000..051f91424
--- /dev/null
+++ b/cinema-application/src/main/java/com/cinema/application/dto/MovieDTO.java
@@ -0,0 +1,13 @@
+package com.cinema.application.dto;
+
+import java.time.LocalDate;
+
+public class MovieDTO {
+ private Long movieId;
+ private String title;
+ private String gradeCd; // 영상물 등급 코드 [ENUM]
+ private LocalDate rlseDate;
+ private String thumbImg;
+ private Integer runtimeMin;
+ private String genreCd; // 장르 코드 [ENUM]
+}
diff --git a/cinema-application/src/main/java/com/cinema/application/mapper/MovieMapper.java b/cinema-application/src/main/java/com/cinema/application/mapper/MovieMapper.java
new file mode 100644
index 000000000..651488734
--- /dev/null
+++ b/cinema-application/src/main/java/com/cinema/application/mapper/MovieMapper.java
@@ -0,0 +1,25 @@
+package com.cinema.application.mapper;
+
+import com.cinema.application.dto.MovieDTO;
+import com.cinema.common.enums.GradeCode;
+import com.cinema.core.domain.Movie;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Named;
+
+@Mapper(componentModel = "spring")
+public interface MovieMapper {
+// @Mapping(source = "gradeCd", target = "gradeCd", qualifiedByName = "convertGradeCode")
+// Movie toEntity(MovieDTO dto);
+
+// MovieDTO toDTO(Movie movie);
+
+ /*@Named("convertGradeCode")
+ default String convertGradeCode(String gradeCode) {
+ try {
+ return GradeCode.fromCode(gradeCode).getDescription();
+ } catch (IllegalArgumentException e) {
+ throw new IllegalArgumentException("Invalid grade code: " + gradeCode, e);
+ }
+ }*/
+}
diff --git a/cinema-application/src/main/java/com/cinema/application/service/MovieService.java b/cinema-application/src/main/java/com/cinema/application/service/MovieService.java
new file mode 100644
index 000000000..008eabdbd
--- /dev/null
+++ b/cinema-application/src/main/java/com/cinema/application/service/MovieService.java
@@ -0,0 +1,22 @@
+package com.cinema.application.service;
+
+import com.cinema.core.domain.Movie;
+import com.cinema.infra.repository.MovieRepository;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@Service
+public class MovieService {
+ private final MovieRepository movieRepository;
+
+ public List getMovies(boolean bookable) {
+ if (bookable) {
+ return movieRepository.findBookableMovies();
+ } else {
+ return movieRepository.findAll();
+ }
+ }
+}
diff --git a/cinema-common/build.gradle b/cinema-common/build.gradle
new file mode 100644
index 000000000..a23bf2069
--- /dev/null
+++ b/cinema-common/build.gradle
@@ -0,0 +1,12 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot'
+ id 'io.spring.dependency-management' // 루트의 dependency-management 상속
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+dependencies {
+ implementation 'org.springframework.boot:spring-boot-starter'
+}
\ No newline at end of file
diff --git a/cinema-common/src/main/java/com/cinema/Main.java b/cinema-common/src/main/java/com/cinema/Main.java
new file mode 100644
index 000000000..84ffbc7c7
--- /dev/null
+++ b/cinema-common/src/main/java/com/cinema/Main.java
@@ -0,0 +1,7 @@
+package com.cinema;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/cinema-common/src/main/java/com/cinema/common/enums/GenreCode.java b/cinema-common/src/main/java/com/cinema/common/enums/GenreCode.java
new file mode 100644
index 000000000..625f0107c
--- /dev/null
+++ b/cinema-common/src/main/java/com/cinema/common/enums/GenreCode.java
@@ -0,0 +1,38 @@
+package com.cinema.common.enums;
+
+// 참고 : AttributeConverter 를 사용하면 DB 리소스를 절약해서 사용할 수 있음.
+
+/**
+ * 장르 코드
+ * */
+public enum GenreCode {
+ HORROR("공포"),
+ ROMANCE("로맨스"),
+ ACTION("액션"),
+ DRAMA("드라마"),
+ COMEDY("코미디"),
+ THRILLER("스릴러"),
+ SCI_FI("SF"),
+ FANTASY("판타지"),
+ ANIMATION("애니메이션"),
+ DOCUMENTARY("다큐멘터리");
+
+ private final String description;
+
+ GenreCode(String description) {
+ this.description = description;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public static GenreCode fromCode(String code) {
+ for (GenreCode genreCode : GenreCode.values()) {
+ if (genreCode.name().equalsIgnoreCase(code)) {
+ return genreCode;
+ }
+ }
+ throw new IllegalArgumentException("Invalid genre code: " + code);
+ }
+}
diff --git a/cinema-common/src/main/java/com/cinema/common/enums/GradeCode.java b/cinema-common/src/main/java/com/cinema/common/enums/GradeCode.java
new file mode 100644
index 000000000..54a5daeeb
--- /dev/null
+++ b/cinema-common/src/main/java/com/cinema/common/enums/GradeCode.java
@@ -0,0 +1,30 @@
+package com.cinema.common.enums;
+
+/**
+ * 영상물 등급 코드
+ * */
+public enum GradeCode {
+ G("전체관람가"),
+ PG("부모 동반 관람가"),
+ PG13("13세 이상 관람가"),
+ R("17세 이상 관람가");
+
+ private final String description;
+
+ GradeCode(String description) {
+ this.description = description;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public static GradeCode fromCode(String code) {
+ for (GradeCode gradeCode : GradeCode.values()) {
+ if (gradeCode.name().equalsIgnoreCase(code)) {
+ return gradeCode;
+ }
+ }
+ throw new IllegalArgumentException("Invalid grade code: " + code);
+ }
+}
diff --git a/cinema-common/src/main/java/com/cinema/common/enums/SeatTypeCode.java b/cinema-common/src/main/java/com/cinema/common/enums/SeatTypeCode.java
new file mode 100644
index 000000000..9c229e20a
--- /dev/null
+++ b/cinema-common/src/main/java/com/cinema/common/enums/SeatTypeCode.java
@@ -0,0 +1,32 @@
+package com.cinema.common.enums;
+
+/**
+ * 좌석 유형 코드
+ * */
+public enum SeatTypeCode {
+ STANDARD("일반석"),
+ ACCESSIBLE("장애인석"),
+ PREMIUM("프리미엄 좌석"),
+ VIP("VIP 좌석"),
+ RECLINING("리클라이닝 좌석"),
+ SWEET_BOX("스위트석");
+
+ private final String description;
+
+ SeatTypeCode(String description) {
+ this.description = description;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public static SeatTypeCode fromCode(String code) {
+ for (SeatTypeCode seatTypeCode : SeatTypeCode.values()) {
+ if (seatTypeCode.name().equalsIgnoreCase(code)) {
+ return seatTypeCode;
+ }
+ }
+ throw new IllegalArgumentException("Invalid seat type code: " + code);
+ }
+}
diff --git a/cinema-core/build.gradle b/cinema-core/build.gradle
new file mode 100644
index 000000000..07db222a2
--- /dev/null
+++ b/cinema-core/build.gradle
@@ -0,0 +1,14 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot'
+ id 'io.spring.dependency-management' // 루트의 dependency-management 상속
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+dependencies {
+ implementation 'org.springframework.boot:spring-boot-starter'
+ implementation 'org.mapstruct:mapstruct:1.5.5.Final'
+ annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
+}
\ No newline at end of file
diff --git a/cinema-core/src/main/java/com/cinema/Main.java b/cinema-core/src/main/java/com/cinema/Main.java
new file mode 100644
index 000000000..84ffbc7c7
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/Main.java
@@ -0,0 +1,7 @@
+package com.cinema;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/BaseEntity.java b/cinema-core/src/main/java/com/cinema/core/domain/BaseEntity.java
new file mode 100644
index 000000000..6fc9cd42f
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/BaseEntity.java
@@ -0,0 +1,28 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.EntityListeners;
+import jakarta.persistence.MappedSuperclass;
+import org.springframework.data.annotation.CreatedDate;
+import org.springframework.data.annotation.LastModifiedDate;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@MappedSuperclass
+@EntityListeners(AuditingEntityListener.class)
+public abstract class BaseEntity implements Serializable {
+ private static final long serialVersionUID = 5734923467115214772L;
+
+ private String createdBy;
+
+ @CreatedDate
+ @Column(nullable = false, updatable = false)
+ private LocalDateTime createdAt;
+
+ private String updatedAt;
+
+ @LastModifiedDate
+ private LocalDateTime updatedBy;
+}
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/Movie.java b/cinema-core/src/main/java/com/cinema/core/domain/Movie.java
new file mode 100644
index 000000000..30a4c7597
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/Movie.java
@@ -0,0 +1,39 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "movie")
+public class Movie extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = -4290967803761576977L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "movie_id", columnDefinition = "INT UNSIGNED")
+ private Long movieId;
+
+ @Column(name = "title")
+ private String title;
+
+ @Column(name = "grade_cd")
+ private String gradeCd; // 영상물 등급 코드 [ENUM]
+
+ @Column(name = "rlse_date")
+ private LocalDate rlseDate;
+
+ @Column(name = "thumb_img")
+ private String thumbImg;
+
+ @Column(name = "runtime_min")
+ private Integer runtimeMin;
+
+ @Column(name = "genre_cd")
+ private String genreCd; // 장르 코드 [ENUM]
+}
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/Screening.java b/cinema-core/src/main/java/com/cinema/core/domain/Screening.java
new file mode 100644
index 000000000..697f1883e
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/Screening.java
@@ -0,0 +1,38 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalTime;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "screening")
+public class Screening extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = -1116415509867579126L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "screening_id", columnDefinition = "INT UNSIGNED")
+ private Long screeningId;
+
+ @Column(name = "movie_id")
+ private Long movieId;
+
+ @Column(name = "theater_id")
+ private Long theaterId;
+
+ @Column(name = "show_date")
+ private LocalDate showDate;
+
+ @Column(name = "start_time")
+ private LocalTime startTime;
+
+ @Column(name = "end_time")
+ private LocalTime endTime;
+}
+
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/Seat.java b/cinema-core/src/main/java/com/cinema/core/domain/Seat.java
new file mode 100644
index 000000000..a73610d94
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/Seat.java
@@ -0,0 +1,26 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "seat")
+public class Seat extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = -8004503224579450742L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "seat_id", columnDefinition = "INT UNSIGNED")
+ private Long seatId;
+
+ @Column(name = "seat_type_cd")
+ private String seatTypeCd; // 좌석 유형 코드 [ENUM]
+
+ @Column(name = "seat_nm")
+ private String seatNm;
+}
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/Theater.java b/cinema-core/src/main/java/com/cinema/core/domain/Theater.java
new file mode 100644
index 000000000..d87fb220f
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/Theater.java
@@ -0,0 +1,26 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "theater")
+public class Theater extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 8678295794324077135L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "theater_id", columnDefinition = "INT UNSIGNED")
+ private Long theaterId;
+
+ @Column(name = "theater_nm")
+ private String theaterNm;
+
+ @Column(name = "location")
+ private String location;
+}
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/Ticket.java b/cinema-core/src/main/java/com/cinema/core/domain/Ticket.java
new file mode 100644
index 000000000..0972a6a55
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/Ticket.java
@@ -0,0 +1,29 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "ticket")
+public class Ticket extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = -5368501456583801672L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "ticket_id", columnDefinition = "INT UNSIGNED")
+ private Long ticketId;
+
+ @Column(name = "user_id")
+ private Long userId;
+
+ @Column(name = "seat_id")
+ private Long seatId;
+
+ @Column(name = "time_id")
+ private Long timeId;
+}
diff --git a/cinema-core/src/main/java/com/cinema/core/domain/User.java b/cinema-core/src/main/java/com/cinema/core/domain/User.java
new file mode 100644
index 000000000..fe5834aa7
--- /dev/null
+++ b/cinema-core/src/main/java/com/cinema/core/domain/User.java
@@ -0,0 +1,27 @@
+package com.cinema.core.domain;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Entity
+@Getter
+@Setter
+@Table(name = "user")
+public class User extends BaseEntity implements Serializable {
+ private static final long serialVersionUID = 3213156872610256916L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "user_id", columnDefinition = "INT UNSIGNED")
+ private Long userId;
+
+ @Column(name = "user_nm")
+ private String userNm;
+
+ @Column(name = "birth_date")
+ private LocalDate birthDate;
+}
diff --git a/cinema-infra/build.gradle b/cinema-infra/build.gradle
new file mode 100644
index 000000000..7b6b35abf
--- /dev/null
+++ b/cinema-infra/build.gradle
@@ -0,0 +1,15 @@
+plugins {
+ id 'java'
+ id 'org.springframework.boot'
+ id 'io.spring.dependency-management' // 루트의 dependency-management 상속
+}
+
+group = 'com.cinema'
+version = '0.0.1-SNAPSHOT'
+
+dependencies {
+ implementation project(':cinema-core')
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+ runtimeOnly 'com.mysql:mysql-connector-j'
+}
+
diff --git a/cinema-infra/src/main/java/com/cinema/Main.java b/cinema-infra/src/main/java/com/cinema/Main.java
new file mode 100644
index 000000000..84ffbc7c7
--- /dev/null
+++ b/cinema-infra/src/main/java/com/cinema/Main.java
@@ -0,0 +1,7 @@
+package com.cinema;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/cinema-infra/src/main/java/com/cinema/infra/repository/MovieRepository.java b/cinema-infra/src/main/java/com/cinema/infra/repository/MovieRepository.java
new file mode 100644
index 000000000..9b81d3343
--- /dev/null
+++ b/cinema-infra/src/main/java/com/cinema/infra/repository/MovieRepository.java
@@ -0,0 +1,21 @@
+package com.cinema.infra.repository;
+
+import com.cinema.core.domain.Movie;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface MovieRepository extends JpaRepository {
+ @Query("""
+ SELECT DISTINCT m FROM Movie m
+ JOIN Screening s ON m.movieId = s.movieId
+ JOIN Theater t ON t.theaterId = s.theaterId
+ WHERE s.showDate > CURRENT_DATE
+ OR (s.showDate = CURRENT_DATE AND s.startTime > CURRENT_TIME)
+ ORDER BY m.rlseDate DESC
+ """)
+ List findBookableMovies();
+}
diff --git a/compose.yaml b/compose.yaml
new file mode 100644
index 000000000..0641d0329
--- /dev/null
+++ b/compose.yaml
@@ -0,0 +1,38 @@
+services:
+ db:
+ image: mysql:8.0
+ container_name: mysql_db
+ ports:
+ - "3307:3306"
+ environment:
+ MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
+ MYSQL_DATABASE: ${MYSQL_DATABASE}
+ MYSQL_USER: ${MYSQL_USER}
+ MYSQL_PASSWORD: ${MYSQL_PASSWORD}
+ volumes:
+ - db_data:/var/lib/mysql
+ - ./ddl.sql:/docker-entrypoint-initdb.d/ddl.sql:ro
+ - ./dummy_data.sql:/docker-entrypoint-initdb.d/dummy_data.sql:ro
+ networks:
+ - cinema_network
+
+ app:
+ build:
+ context: .
+ container_name: cinema_app
+ ports:
+ - "8080:8080"
+ environment:
+ SPRING_DATASOURCE_URL: jdbc:mysql://db:3307/${MYSQL_DATABASE}?useSSL=false&allowPublicKeyRetrieval=true
+ SPRING_DATASOURCE_USERNAME: ${MYSQL_USER}
+ SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}
+ depends_on:
+ - db
+ networks:
+ - cinema_network
+
+volumes:
+ db_data:
+
+networks:
+ cinema_network:
diff --git a/ddl.sql b/ddl.sql
new file mode 100644
index 000000000..db384050e
--- /dev/null
+++ b/ddl.sql
@@ -0,0 +1,89 @@
+CREATE DATABASE IF NOT EXISTS cinema;
+
+USE cinema;
+
+DROP TABLE IF EXISTS `movie`;
+
+CREATE TABLE `movie` (
+ `movie_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '영화ID',
+ `title` VARCHAR(100) NULL COMMENT '영화 제목',
+ `grade_cd` VARCHAR(10) NULL COMMENT '영상물 등급 코드[ENUM]',
+ `rlse_date` DATE NULL COMMENT '개봉일',
+ `thumb_img` VARCHAR(200) NULL COMMENT '썸네일 이미지',
+ `runtime_min` INT NULL COMMENT '러닝 타임(분)',
+ `genre_cd` VARCHAR(20) NULL COMMENT '장르코드[ENUM]',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`movie_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+DROP TABLE IF EXISTS `theater`;
+
+CREATE TABLE `theater` (
+ `theater_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '상영관ID',
+ `theater_nm` VARCHAR(100) NULL COMMENT '상영관명',
+ `location` VARCHAR(100) NULL COMMENT '위치',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`theater_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+DROP TABLE IF EXISTS `screening`;
+
+CREATE TABLE `screening` (
+ `screening_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '상영시간표ID',
+ `movie_id` INT UNSIGNED NOT NULL COMMENT '영화ID',
+ `theater_id` INT UNSIGNED NOT NULL COMMENT '상영관ID',
+ `show_date` DATE NOT NULL COMMENT '상영일자',
+ `start_time` TIME NOT NULL COMMENT '상영시작시각',
+ `end_time` TIME NOT NULL COMMENT '상영종료시각',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`screening_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+DROP TABLE IF EXISTS `seat`;
+
+CREATE TABLE `seat` (
+ `seat_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '좌석ID',
+ `seat_type_cd` VARCHAR(20) NULL COMMENT '좌석유형코드[ENUM]',
+ `seat_nm` VARCHAR(20) NULL COMMENT '좌석명',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`seat_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+DROP TABLE IF EXISTS `user`;
+
+CREATE TABLE `user` (
+ `user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '회원ID',
+ `user_nm` VARCHAR(20) NULL COMMENT '회원명',
+ `birth_date` DATE NULL COMMENT '생년월일',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+DROP TABLE IF EXISTS `ticket`;
+
+CREATE TABLE `ticket` (
+ `ticket_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '예매ID',
+ `user_id` VARCHAR(20) NOT NULL COMMENT '회원ID',
+ `seat_id` VARCHAR(20) NOT NULL COMMENT '좌석ID',
+ `time_id` VARCHAR(20) NOT NULL COMMENT '상영시간표ID',
+ `created_by` VARCHAR(20) NULL COMMENT '작성자',
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '작성일',
+ `updated_by` VARCHAR(20) NULL COMMENT '수정자',
+ `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일',
+ PRIMARY KEY (`ticket_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
diff --git a/docs/images/corrected_erd.png b/docs/images/corrected_erd.png
new file mode 100644
index 000000000..d0476d227
Binary files /dev/null and b/docs/images/corrected_erd.png differ
diff --git a/docs/images/erd.png b/docs/images/erd.png
new file mode 100644
index 000000000..fc2c73faf
Binary files /dev/null and b/docs/images/erd.png differ
diff --git a/dummy_data.sql b/dummy_data.sql
new file mode 100644
index 000000000..53767392c
--- /dev/null
+++ b/dummy_data.sql
@@ -0,0 +1,596 @@
+/* movie */
+insert into movie (title, grade_cd, rlse_date, thumb_img, runtime_min, genre_cd, created_by)
+values
+('Swindle, The (Rien ne va plus)', 'G', '2025-01-03', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 141, 'HORROR', 'admin'),
+('Violence at Noon (Hakuchu no torima)', 'PG13', '2025-02-04', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 80, 'THRILLER', 'admin'),
+('Nutty Professor, The', 'R', '2025-01-08', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 139, 'ROMANCE', 'admin'),
+('Jekyll + Hyde', 'PG', '2025-02-05', 'https://images.khan.co.kr/article/2019/11/03/l_2019110302000086500015273.jpg', 115, 'ROMANCE', 'admin'),
+('Deep in the Valley (American Hot Babes)', 'G', '2025-01-04', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 147, 'THRILLER', 'admin'),
+('Draughtsman''s Contract, The', 'G', '2025-01-03', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 122, 'ACTION', 'admin'),
+('Irene, Go Home! (Irena do domu!)', 'R', '2025-01-22', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 62, 'THRILLER', 'admin'),
+('Downstairs', 'PG13', '2025-01-12', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 127, 'SCI_FI', 'admin'),
+('God on Trial', 'PG', '2025-02-06', 'https://www.sputnik.kr/article_img/202111/article_1638281556.jpeg', 134, 'ACTION', 'admin'),
+('Perez Family, The', 'R', '2025-02-27', 'https://images.khan.co.kr/article/2019/11/03/l_2019110302000086500015273.jpg', 152, 'HORROR', 'admin');
+
+
+/* theater */
+insert into theater (theater_nm, location, created_by)
+values
+('1관', '지하1층', 'admin'),
+('2관', '함장실', 'admin'),
+('3관', '갑판', 'admin'),
+('4관', '조타실', 'admin'),
+('5관', '기관실', 'admin');
+
+
+/* seat */
+insert into seat (seat_type_cd, seat_nm, created_by)
+values
+('ACCESSIBLE', 'A1', 'admin'),
+('ACCESSIBLE', 'A2', 'admin'),
+('ACCESSIBLE', 'A3', 'admin'),
+('ACCESSIBLE', 'A4', 'admin'),
+('ACCESSIBLE', 'A5', 'admin'),
+('RECLINING', 'B1', 'admin'),
+('RECLINING', 'B2', 'admin'),
+('RECLINING', 'B3', 'admin'),
+('RECLINING', 'B4', 'admin'),
+('RECLINING', 'B5', 'admin'),
+('STANDARD', 'C1', 'admin'),
+('STANDARD', 'C2', 'admin'),
+('STANDARD', 'C3', 'admin'),
+('STANDARD', 'C4', 'admin'),
+('STANDARD', 'C5', 'admin'),
+('PREMIUM', 'D1', 'admin'),
+('PREMIUM', 'D2', 'admin'),
+('PREMIUM', 'D3', 'admin'),
+('PREMIUM', 'D4', 'admin'),
+('PREMIUM', 'D5', 'admin'),
+('SWEET_BOX', 'E1', 'admin'),
+('SWEET_BOX', 'E2', 'admin'),
+('VIP', 'E3', 'admin'),
+('SWEET_BOX', 'E4', 'admin'),
+('SWEET_BOX', 'E5', 'admin');
+
+
+/* screening */
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-16','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-17','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-18','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-19','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (1,1,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (2,2,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (3,3,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (4,4,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (5,5,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (6,6,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (7,7,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (8,8,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (9,9,'2025-01-20','23:00:00','24:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','07:00:00','08:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','09:00:00','10:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','11:00:00','12:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','13:00:00','14:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','15:00:00','16:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','17:00:00','18:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','19:00:00','20:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','21:00:00','22:00:00','admin');
+insert into screening (movie_id, theater_id, show_date, start_time, end_time, created_by) values (10,10,'2025-01-20','23:00:00','24:00:00','admin');
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..a4b76b953
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..e2847c820
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 000000000..f5feea6d6
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,252 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
+' "$PWD" ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 000000000..9d21a2183
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,94 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 000000000..d3440ec43
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,3 @@
+rootProject.name = 'cinema'
+include 'cinema-core', 'cinema-common', 'cinema-infra', 'cinema-application', 'cinema-adapter'
+
diff --git a/src/main/resources/http/cinema.http b/src/main/resources/http/cinema.http
new file mode 100644
index 000000000..7c394b875
--- /dev/null
+++ b/src/main/resources/http/cinema.http
@@ -0,0 +1,7 @@
+### 예매 가능한 영화 조회
+GET http://localhost:8080/api/movies/bookable
+Accept: application/json
+
+### 특정 영화 상세 정보 조회 (예: movieId = 1)
+GET http://localhost:8080/api/movies/1
+Accept: application/json