Movie Ticket Booking (LLD) — Simple#
Problem statement (interviewer prompt)
Design the seat-booking domain for a cinema / multiplex (BookMyShow-LLD-style). Model cinemas, screens, shows, seat categories, seat-hold-then-pay flow, payments, ticket generation, and refunds — focusing on the OO classes + state machine.
classDiagram
class Theater
class Hall
class Show
class Seat
class Booking
class Payment
Theater "1" *-- "many" Hall
Hall "1" *-- "many" Show
Show "1" *-- "many" Seat
Show "1" -- "many" Booking
Booking --> Payment