├── .gitignore ├── README.md ├── docker-compose.yml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── requests.http ├── settings.gradle.kts └── src ├── main ├── kotlin │ └── com │ │ └── example │ │ └── kotlinspringboot │ │ ├── KotlinSpringBootApplication.kt │ │ ├── common │ │ ├── base │ │ │ ├── BaseAggregate.kt │ │ │ ├── BaseCommand.kt │ │ │ ├── BaseDomainEvent.kt │ │ │ ├── BaseEntity.kt │ │ │ ├── BasePersistenceEntity.kt │ │ │ └── BaseValueObject.kt │ │ ├── constant │ │ │ └── RestResourcePath.kt │ │ ├── exceptions │ │ │ ├── EntityAlreadyExistException.kt │ │ │ ├── EntityNotFoundException.kt │ │ │ └── RecordNotFoundException.kt │ │ └── interfaces │ │ │ ├── ModelMapper.kt │ │ │ ├── PersistenceAdapter.kt │ │ │ └── UseCase.kt │ │ ├── core │ │ ├── jdbc │ │ │ ├── WithInsertAndUpdate.kt │ │ │ └── WithInsertAndUpdateImpl.kt │ │ ├── snowflake │ │ │ ├── IdGenerator.kt │ │ │ ├── IdRing.kt │ │ │ ├── IdWorker.kt │ │ │ ├── Snowflake.kt │ │ │ └── SnowflakeId.kt │ │ └── swagger │ │ │ └── SwaggerConfig.kt │ │ ├── modules │ │ ├── author │ │ │ ├── domain │ │ │ │ ├── aggregate │ │ │ │ │ ├── Author.kt │ │ │ │ │ └── AuthorId.kt │ │ │ │ └── valueObjects │ │ │ │ │ ├── Age.kt │ │ │ │ │ ├── Biography.kt │ │ │ │ │ └── Name.kt │ │ │ ├── infrastructure │ │ │ │ ├── persistence │ │ │ │ │ ├── AuthorMapper.kt │ │ │ │ │ └── AuthorPersistenceAdapter.kt │ │ │ │ └── query │ │ │ │ │ ├── AuthorJooqRepository.kt │ │ │ │ │ ├── AuthorQueryRepository.kt │ │ │ │ │ └── dtos │ │ │ │ │ └── AuthorDto.kt │ │ │ └── useCases │ │ │ │ ├── event │ │ │ │ └── addBookToAuthor │ │ │ │ │ ├── AddBookToAuthorCommand.kt │ │ │ │ │ ├── AddBookToAuthorEventHandler.kt │ │ │ │ │ └── AddBookToAuthorService.kt │ │ │ │ └── rest │ │ │ │ └── newAuthor │ │ │ │ ├── NewAuthorCommand.kt │ │ │ │ ├── NewAuthorRequest.kt │ │ │ │ ├── NewAuthorRestController.kt │ │ │ │ └── NewAuthorService.kt │ │ └── book │ │ │ ├── domain │ │ │ ├── aggregate │ │ │ │ ├── Book.kt │ │ │ │ └── BookId.kt │ │ │ ├── events │ │ │ │ └── AuthorAddedToBookDomainEvent.kt │ │ │ └── valueObjects │ │ │ │ ├── Isbn.kt │ │ │ │ ├── Money.kt │ │ │ │ ├── Page.kt │ │ │ │ └── Title.kt │ │ │ ├── infrastructure │ │ │ ├── persistence │ │ │ │ ├── BookMapper.kt │ │ │ │ └── BookPersistenceAdapter.kt │ │ │ └── query │ │ │ │ ├── BookJooqRepository.kt │ │ │ │ ├── BookQueryRepository.kt │ │ │ │ └── dtos │ │ │ │ └── BookDto.kt │ │ │ └── useCases │ │ │ └── rest │ │ │ ├── addAuthor │ │ │ ├── AddAuthorCommand.kt │ │ │ ├── AddAuthorRestController.kt │ │ │ └── AddAuthorService.kt │ │ │ ├── deleteBook │ │ │ ├── DeleteBookCommand.kt │ │ │ ├── DeleteBookRestController.kt │ │ │ └── DeleteBookService.kt │ │ │ ├── findBookByTitle │ │ │ └── FindBookByTitleRestController.kt │ │ │ └── newBook │ │ │ ├── NewBookCommand.kt │ │ │ ├── NewBookRequest.kt │ │ │ ├── NewBookRestController.kt │ │ │ └── NewBookService.kt │ │ └── persistence │ │ ├── author │ │ ├── AuthorEntity.kt │ │ └── AuthorRepository.kt │ │ └── book │ │ ├── BookEntity.kt │ │ └── BookRepository.kt └── resources │ ├── application.yml │ ├── db │ └── migration │ │ └── V1__schema.sql │ └── sql │ └── schema.sql └── test └── kotlin └── com └── example └── kotlinspringboot ├── KotlinSpringBootApplicationTests.kt ├── core └── snowflake │ ├── IdRingTest.kt │ └── IdWorkerTest.kt └── modules └── book └── domain ├── aggregate └── BookIdTest.kt └── valueObjects └── TitleTest.kt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/gradlew.bat -------------------------------------------------------------------------------- /requests.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/requests.http -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "kotlin-spring-boot" 2 | -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/KotlinSpringBootApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/KotlinSpringBootApplication.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BaseAggregate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BaseAggregate.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BaseCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BaseCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BaseDomainEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BaseDomainEvent.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BaseEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BaseEntity.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BasePersistenceEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BasePersistenceEntity.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/base/BaseValueObject.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/base/BaseValueObject.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/constant/RestResourcePath.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/constant/RestResourcePath.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/exceptions/EntityAlreadyExistException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/exceptions/EntityAlreadyExistException.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/exceptions/EntityNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/exceptions/EntityNotFoundException.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/exceptions/RecordNotFoundException.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/exceptions/RecordNotFoundException.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/interfaces/ModelMapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/interfaces/ModelMapper.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/interfaces/PersistenceAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/interfaces/PersistenceAdapter.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/common/interfaces/UseCase.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/common/interfaces/UseCase.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/jdbc/WithInsertAndUpdate.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/jdbc/WithInsertAndUpdate.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/jdbc/WithInsertAndUpdateImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/jdbc/WithInsertAndUpdateImpl.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdGenerator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdGenerator.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdRing.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdRing.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdWorker.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/snowflake/IdWorker.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/snowflake/Snowflake.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/snowflake/Snowflake.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/snowflake/SnowflakeId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/snowflake/SnowflakeId.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/core/swagger/SwaggerConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/core/swagger/SwaggerConfig.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/aggregate/Author.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/aggregate/Author.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/aggregate/AuthorId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/aggregate/AuthorId.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Age.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Age.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Biography.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Biography.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Name.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/domain/valueObjects/Name.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/persistence/AuthorMapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/persistence/AuthorMapper.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/persistence/AuthorPersistenceAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/persistence/AuthorPersistenceAdapter.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/AuthorJooqRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/AuthorJooqRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/AuthorQueryRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/AuthorQueryRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/dtos/AuthorDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/infrastructure/query/dtos/AuthorDto.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorEventHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorEventHandler.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/event/addBookToAuthor/AddBookToAuthorService.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorRequest.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorRestController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorRestController.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/author/useCases/rest/newAuthor/NewAuthorService.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/Book.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/Book.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/BookId.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/BookId.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/events/AuthorAddedToBookDomainEvent.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/events/AuthorAddedToBookDomainEvent.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Isbn.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Isbn.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Money.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Money.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Page.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Page.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Title.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/Title.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/persistence/BookMapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/persistence/BookMapper.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/persistence/BookPersistenceAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/persistence/BookPersistenceAdapter.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/BookJooqRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/BookJooqRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/BookQueryRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/BookQueryRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/dtos/BookDto.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/infrastructure/query/dtos/BookDto.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorRestController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorRestController.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/addAuthor/AddAuthorService.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookRestController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookRestController.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/deleteBook/DeleteBookService.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/findBookByTitle/FindBookByTitleRestController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/findBookByTitle/FindBookByTitleRestController.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookCommand.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookCommand.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookRequest.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookRestController.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookRestController.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/modules/book/useCases/rest/newBook/NewBookService.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/persistence/author/AuthorEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/persistence/author/AuthorEntity.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/persistence/author/AuthorRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/persistence/author/AuthorRepository.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/persistence/book/BookEntity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/persistence/book/BookEntity.kt -------------------------------------------------------------------------------- /src/main/kotlin/com/example/kotlinspringboot/persistence/book/BookRepository.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/kotlin/com/example/kotlinspringboot/persistence/book/BookRepository.kt -------------------------------------------------------------------------------- /src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/resources/application.yml -------------------------------------------------------------------------------- /src/main/resources/db/migration/V1__schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/resources/db/migration/V1__schema.sql -------------------------------------------------------------------------------- /src/main/resources/sql/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/main/resources/sql/schema.sql -------------------------------------------------------------------------------- /src/test/kotlin/com/example/kotlinspringboot/KotlinSpringBootApplicationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/test/kotlin/com/example/kotlinspringboot/KotlinSpringBootApplicationTests.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/example/kotlinspringboot/core/snowflake/IdRingTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/test/kotlin/com/example/kotlinspringboot/core/snowflake/IdRingTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/example/kotlinspringboot/core/snowflake/IdWorkerTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/test/kotlin/com/example/kotlinspringboot/core/snowflake/IdWorkerTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/BookIdTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/test/kotlin/com/example/kotlinspringboot/modules/book/domain/aggregate/BookIdTest.kt -------------------------------------------------------------------------------- /src/test/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/TitleTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JayAhn2/kotlin-spring-boot-ddd/HEAD/src/test/kotlin/com/example/kotlinspringboot/modules/book/domain/valueObjects/TitleTest.kt --------------------------------------------------------------------------------