├── .editorconfig ├── .github └── workflows │ └── code_analysis.yaml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── behat.php ├── bin ├── composer ├── fix ├── install └── test ├── compose.yml ├── composer.json ├── composer.lock ├── docker └── php │ └── app.ini ├── ecs.php ├── phpstan-baseline.php ├── phpstan.dist.neon ├── phpunit.xml.dist ├── rector.php ├── run_tests.sh ├── src ├── Common │ └── EventDispatcher │ │ └── EventDispatcher.php └── TicketMill │ ├── Application │ ├── CancelReservation.php │ ├── MakeReservation.php │ ├── Notifications │ │ ├── Mailer.php │ │ └── SendMail.php │ └── PlanConcert.php │ ├── Domain │ └── Model │ │ ├── Common │ │ ├── EmailAddress.php │ │ └── EventRecording.php │ │ ├── Concert │ │ ├── Concert.php │ │ ├── ConcertId.php │ │ ├── ConcertRepository.php │ │ ├── ConcertWasPlanned.php │ │ ├── CouldNotFindConcert.php │ │ ├── CouldNotFindReservation.php │ │ ├── CouldNotRescheduleConcert.php │ │ ├── CouldNotReserveSeats.php │ │ ├── Reservation.php │ │ ├── ReservationId.php │ │ ├── ReservationWasCancelled.php │ │ ├── ReservationWasMade.php │ │ └── ScheduledDate.php │ │ └── Reservation │ │ ├── Reservation.php │ │ └── ReservationRepository.php │ └── Infrastructure │ ├── EventSubscriberSpy.php │ ├── InMemoryConcertRepository.php │ ├── InMemoryReservationRepository.php │ ├── MailerSpy.php │ └── ServiceContainer.php └── test ├── Acceptance ├── FeatureContext.php └── features │ └── reserving_seats.feature └── Unit ├── TicketMill ├── Domain │ └── Model │ │ ├── Common │ │ └── EmailAddressTest.php │ │ ├── Concert │ │ ├── ConcertIdTest.php │ │ ├── ConcertTest.php │ │ ├── ReservationIdTest.php │ │ └── ScheduledDateTest.php │ │ └── Reservation │ │ └── ReservationTest.php └── Infrastructure │ ├── InMemoryConcertRepositoryTest.php │ ├── InMemoryReservationRepositoryTest.php │ ├── MailerSpyTest.php │ └── ServiceContainerTest.php └── Utility ├── AggregateTestCase.php ├── AggregateTestCaseTest.php ├── ArrayContainsObjectOfClass.php └── Dummy.php /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/code_analysis.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/.github/workflows/code_analysis.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/README.md -------------------------------------------------------------------------------- /behat.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/behat.php -------------------------------------------------------------------------------- /bin/composer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/bin/composer -------------------------------------------------------------------------------- /bin/fix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/bin/fix -------------------------------------------------------------------------------- /bin/install: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/bin/install -------------------------------------------------------------------------------- /bin/test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/bin/test -------------------------------------------------------------------------------- /compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/compose.yml -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/composer.json -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/composer.lock -------------------------------------------------------------------------------- /docker/php/app.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/docker/php/app.ini -------------------------------------------------------------------------------- /ecs.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/ecs.php -------------------------------------------------------------------------------- /phpstan-baseline.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/phpstan-baseline.php -------------------------------------------------------------------------------- /phpstan.dist.neon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/phpstan.dist.neon -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/phpunit.xml.dist -------------------------------------------------------------------------------- /rector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/rector.php -------------------------------------------------------------------------------- /run_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/run_tests.sh -------------------------------------------------------------------------------- /src/Common/EventDispatcher/EventDispatcher.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/Common/EventDispatcher/EventDispatcher.php -------------------------------------------------------------------------------- /src/TicketMill/Application/CancelReservation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Application/CancelReservation.php -------------------------------------------------------------------------------- /src/TicketMill/Application/MakeReservation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Application/MakeReservation.php -------------------------------------------------------------------------------- /src/TicketMill/Application/Notifications/Mailer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Application/Notifications/Mailer.php -------------------------------------------------------------------------------- /src/TicketMill/Application/Notifications/SendMail.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Application/Notifications/SendMail.php -------------------------------------------------------------------------------- /src/TicketMill/Application/PlanConcert.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Application/PlanConcert.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Common/EmailAddress.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Common/EmailAddress.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Common/EventRecording.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Common/EventRecording.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/Concert.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/Concert.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ConcertId.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ConcertId.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ConcertRepository.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ConcertRepository.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ConcertWasPlanned.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ConcertWasPlanned.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/CouldNotFindConcert.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/CouldNotFindConcert.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/CouldNotFindReservation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/CouldNotFindReservation.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/CouldNotRescheduleConcert.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/CouldNotRescheduleConcert.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/CouldNotReserveSeats.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/CouldNotReserveSeats.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/Reservation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/Reservation.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ReservationId.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ReservationId.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ReservationWasCancelled.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ReservationWasCancelled.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ReservationWasMade.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ReservationWasMade.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Concert/ScheduledDate.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Concert/ScheduledDate.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Reservation/Reservation.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Reservation/Reservation.php -------------------------------------------------------------------------------- /src/TicketMill/Domain/Model/Reservation/ReservationRepository.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Domain/Model/Reservation/ReservationRepository.php -------------------------------------------------------------------------------- /src/TicketMill/Infrastructure/EventSubscriberSpy.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Infrastructure/EventSubscriberSpy.php -------------------------------------------------------------------------------- /src/TicketMill/Infrastructure/InMemoryConcertRepository.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Infrastructure/InMemoryConcertRepository.php -------------------------------------------------------------------------------- /src/TicketMill/Infrastructure/InMemoryReservationRepository.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Infrastructure/InMemoryReservationRepository.php -------------------------------------------------------------------------------- /src/TicketMill/Infrastructure/MailerSpy.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Infrastructure/MailerSpy.php -------------------------------------------------------------------------------- /src/TicketMill/Infrastructure/ServiceContainer.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/src/TicketMill/Infrastructure/ServiceContainer.php -------------------------------------------------------------------------------- /test/Acceptance/FeatureContext.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Acceptance/FeatureContext.php -------------------------------------------------------------------------------- /test/Acceptance/features/reserving_seats.feature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Acceptance/features/reserving_seats.feature -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Common/EmailAddressTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Common/EmailAddressTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Concert/ConcertIdTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Concert/ConcertIdTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Concert/ConcertTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Concert/ConcertTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Concert/ReservationIdTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Concert/ReservationIdTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Concert/ScheduledDateTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Concert/ScheduledDateTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Domain/Model/Reservation/ReservationTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Domain/Model/Reservation/ReservationTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Infrastructure/InMemoryConcertRepositoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Infrastructure/InMemoryConcertRepositoryTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Infrastructure/InMemoryReservationRepositoryTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Infrastructure/InMemoryReservationRepositoryTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Infrastructure/MailerSpyTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Infrastructure/MailerSpyTest.php -------------------------------------------------------------------------------- /test/Unit/TicketMill/Infrastructure/ServiceContainerTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/TicketMill/Infrastructure/ServiceContainerTest.php -------------------------------------------------------------------------------- /test/Unit/Utility/AggregateTestCase.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/Utility/AggregateTestCase.php -------------------------------------------------------------------------------- /test/Unit/Utility/AggregateTestCaseTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/Utility/AggregateTestCaseTest.php -------------------------------------------------------------------------------- /test/Unit/Utility/ArrayContainsObjectOfClass.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/matthiasnoback/aggregate-design-workshop/HEAD/test/Unit/Utility/ArrayContainsObjectOfClass.php -------------------------------------------------------------------------------- /test/Unit/Utility/Dummy.php: -------------------------------------------------------------------------------- 1 |