├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── README.md ├── layers.png ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── io │ │ └── pillopl │ │ └── cinema │ │ ├── Cinema.java │ │ ├── availability │ │ ├── Row.java │ │ ├── Seat.java │ │ └── SeatsAvailability.java │ │ ├── reservation │ │ ├── DontLeaveSingleEmptySeat.java │ │ ├── NoAdditionalRule.java │ │ ├── ReservationConfiguration.java │ │ ├── ReservationResult.java │ │ ├── ReserveShowDomainService.java │ │ ├── ReserveShowService.java │ │ └── ShowReservationRule.java │ │ └── show │ │ ├── Seat.java │ │ ├── SeatsCollection.java │ │ ├── Show.java │ │ ├── ShowConfiguration.java │ │ ├── ShowRepository.java │ │ └── Shows.java └── resources │ ├── application.properties │ └── schema.sql └── test └── java └── io └── pillopl └── cinema ├── availability ├── SeatsAvailabilityCheckingTest.java └── SeatsAvailabilityPrintingTest.java ├── database └── SeatOptimisticLockingIntegrationTest.java ├── reservation ├── ArtificialRuleWithRequiredSpecificSeat.java ├── ReservationWithSpecificRequiredSeatTest.java ├── ReservationWithoutAdditionalRulesTest.java ├── ReservationWithoutSingleFreeSeatLeftRuleTest.java └── ReservingSeatsForShowIntegrationTest.java └── show └── ShowCreationIntegrationTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/.mvn/wrapper/MavenWrapperDownloader.java -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/README.md -------------------------------------------------------------------------------- /layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/layers.png -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/Cinema.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/Cinema.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/availability/Row.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/availability/Row.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/availability/Seat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/availability/Seat.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/availability/SeatsAvailability.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/availability/SeatsAvailability.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/DontLeaveSingleEmptySeat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/DontLeaveSingleEmptySeat.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/NoAdditionalRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/NoAdditionalRule.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/ReservationConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/ReservationConfiguration.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/ReservationResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/ReservationResult.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/ReserveShowDomainService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/ReserveShowDomainService.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/ReserveShowService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/ReserveShowService.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/reservation/ShowReservationRule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/reservation/ShowReservationRule.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/Seat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/Seat.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/SeatsCollection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/SeatsCollection.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/Show.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/Show.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/ShowConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/ShowConfiguration.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/ShowRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/ShowRepository.java -------------------------------------------------------------------------------- /src/main/java/io/pillopl/cinema/show/Shows.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/java/io/pillopl/cinema/show/Shows.java -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/resources/application.properties -------------------------------------------------------------------------------- /src/main/resources/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/main/resources/schema.sql -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/availability/SeatsAvailabilityCheckingTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/availability/SeatsAvailabilityCheckingTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/availability/SeatsAvailabilityPrintingTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/availability/SeatsAvailabilityPrintingTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/database/SeatOptimisticLockingIntegrationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/database/SeatOptimisticLockingIntegrationTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/reservation/ArtificialRuleWithRequiredSpecificSeat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/reservation/ArtificialRuleWithRequiredSpecificSeat.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/reservation/ReservationWithSpecificRequiredSeatTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/reservation/ReservationWithSpecificRequiredSeatTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/reservation/ReservationWithoutAdditionalRulesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/reservation/ReservationWithoutAdditionalRulesTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/reservation/ReservationWithoutSingleFreeSeatLeftRuleTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/reservation/ReservationWithoutSingleFreeSeatLeftRuleTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/reservation/ReservingSeatsForShowIntegrationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/reservation/ReservingSeatsForShowIntegrationTest.java -------------------------------------------------------------------------------- /src/test/java/io/pillopl/cinema/show/ShowCreationIntegrationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddd-by-examples/cinema/HEAD/src/test/java/io/pillopl/cinema/show/ShowCreationIntegrationTest.java --------------------------------------------------------------------------------