# 🍿 Ticketing μ˜ν™” 예맀 μ‚¬μ΄νŠΈλ₯Ό λŒ€μš©λŸ‰ νŠΈλž˜ν”½μ— λŒ€μ‘ν•  수 μžˆλ„λ‘ 섀계.
## πŸ“† ν”„λ‘œμ νŠΈ κΈ°κ°„ ### 22.04.13 ~ - 기획 및 섀계 : 22.04.13 ~ - ν”„λ‘œμ νŠΈ κ΅¬ν˜„ :
## 🎯 ν”„λ‘œμ νŠΈ μ£Όμš” 관심사 - OOP(객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°)의 μž₯점을 μ΅œλŒ€ν•œ ν™œμš© - ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό ν†΅ν•œ 믿을 수 μžˆλŠ” μ½”λ“œ μž‘μ„± - λŒ€μš©λŸ‰ νŠΈλž˜ν”½μ„ κ³ λ €ν•œ ν™•μž₯ κ°€λŠ₯ν•œ 섀계 및 μ„±λŠ₯ νŠœλ‹ - μ½”λ“œλ¦¬λ·°λ₯Ό 톡해 μ½”λ“œ ν’ˆμ§ˆ ν–₯상 - μ½”λ“œ μ»¨λ²€μ…˜ μ€€μˆ˜ν•˜μ—¬ μ½”λ“œ 톡일성 μœ μ§€
## πŸ›  κΈ°μˆ μŠ€νƒ - Java 11 - Spring Boot 2.6.7 (λ‹Ήμ‹œ μ΅œμ‹  GA 버전) - Gradle Kotlin DSL - Spring Security - Junit 5 - Hibernate / SpringJPA - MySQL 8.0 - Redis
## Wiki - [Git Branch μ „λž΅](https://github.com/f-lab-edu/Ticketing/wiki#-git-branch-%EC%A0%84%EB%9E%B5) - [Code Convention](https://github.com/f-lab-edu/Ticketing/wiki#-code-convention) - [νŒ¨ν‚€μ§€ ꡬ쑰](https://github.com/f-lab-edu/Ticketing/wiki#-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B5%AC%EC%A1%B0) - [Use Case](https://github.com/f-lab-edu/Ticketing/wiki/Use-Case) - [Prototype](https://github.com/f-lab-edu/Ticketing/wiki/Prototype) - [Issue Posting](https://github.com/f-lab-edu/Ticketing/wiki/Issue-Posting)
## 🧩 ERD ``` mermaid erDiagram MOVIE ||--o{ MOVIE_TIME : "" MOVIE { bigint id PK "μ˜ν™” ID" varchar title "μ˜ν™”μ œλͺ©" int running_time "λŸ¬λ‹νƒ€μž„" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "λ“±λ‘μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } THEATER ||--o{ MOVIE_TIME : "" THEATER ||--|{ SEAT : "" THEATER { bigint id PK "μƒμ˜κ΄€ ID" int theater_number "μƒμ˜κ΄€ 번호" int seat_count "μ’Œμ„μˆ˜" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "λ“±λ‘μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } SEAT ||--o{ TICKET : "" SEAT { bigint id PK "μ’Œμ„ ID" bigint theater_id FK "μƒμ˜κ΄€ ID" int column "μ—΄" int row "ν–‰" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "λ“±λ‘μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } MOVIE_TIME ||--o{ TICKET : "" MOVIE_TIME { bigint id PK "μƒμ˜μ‹œκ°„ν‘œ ID" bigint movie_id FK "μ˜ν™” ID" bigint theater_id FK "μƒμ˜κ΄€ ID" int round "회차" time start_at "μ‹œμž‘ μ‹œκ°„" time end_at "μ’…λ£Œ μ‹œκ°„" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "λ“±λ‘μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } TICKET { bigint id PK "ν‹°μΌ“ ID" bigint seat_id FK "μ’Œμ„ ID" bigint movie_time_id FK "μƒμ˜μ‹œκ°„ν‘œ ID" bigint payment_id "결제 ID" varchar status "μƒνƒœ - νŒλ§€κ°€λŠ₯/μ˜ˆμ•½/" int ticket_price "가격" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "λ“±λ‘μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } TICKET }|--|| PAYMENT : "" PAYMENT { bigint id PK "결제 ID" bigint user_alternate_id "μœ μ € λŒ€μ²΄ID" varchar tid "카카였페이 결제고유번호" varchar movie_title "μ˜ν™”μ œλͺ©" varchar type "결제 νƒ€μž… - 예) λ„€μ΄λ²„νŽ˜μ΄, 카카였페이" varchar status "μƒνƒœ - μ™„λ£Œ/ν™˜λΆˆ" varchar failed_message "μ‹€νŒ¨μ‚¬μœ " varchar payment_number "예맀번호" int total_price "결제 κΈˆμ•‘" datetime deleted_at "μ‚­μ œμΌμ‹œ" datetime created_at "κ²°μ œμΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } USER ||--o{ PAYMENT : "" USER { bigint id "νšŒμ›" bigint alternate_id "λŒ€μ²΄ID" varchar name "이름" varchar email "이메일" varchar password "λΉ„λ°€λ²ˆν˜Έ" varchar grade "λ“±κΈ‰ - 고객/μž„μ§μ›" varchar phone "νœ΄λŒ€ν° 번호" datetime deleted_at "νƒˆν‡΄μΌμ‹œ" datetime created_at "κ°€μž…μΌμ‹œ" datetime updated_at "μˆ˜μ •μΌμ‹œ" } ```