diff --git a/pom.xml b/pom.xml
index 5aecab7..3e295e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,7 @@
simplenotes-domain
simplenotes-shared
simplenotes-search
+ simplenotes-types
pom
diff --git a/simplenotes-app/src/main/kotlin/api/ApiNoteController.kt b/simplenotes-app/src/main/kotlin/api/ApiNoteController.kt
index ef300e2..c874389 100644
--- a/simplenotes-app/src/main/kotlin/api/ApiNoteController.kt
+++ b/simplenotes-app/src/main/kotlin/api/ApiNoteController.kt
@@ -2,8 +2,8 @@ package be.simplenotes.app.api
import be.simplenotes.app.extensions.auto
import be.simplenotes.app.utils.parseSearchTerms
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import be.simplenotes.domain.security.JwtPayload
import be.simplenotes.domain.usecases.NoteService
import kotlinx.serialization.Contextual
diff --git a/simplenotes-app/src/main/kotlin/views/NoteView.kt b/simplenotes-app/src/main/kotlin/views/NoteView.kt
index b7d0f88..ccfadb0 100644
--- a/simplenotes-app/src/main/kotlin/views/NoteView.kt
+++ b/simplenotes-app/src/main/kotlin/views/NoteView.kt
@@ -2,8 +2,8 @@ package be.simplenotes.app.views
import be.simplenotes.app.utils.StaticFileResolver
import be.simplenotes.app.views.components.*
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import be.simplenotes.domain.security.JwtPayload
import io.konform.validation.ValidationError
import kotlinx.html.*
diff --git a/simplenotes-app/src/main/kotlin/views/components/DeletedNoteTable.kt b/simplenotes-app/src/main/kotlin/views/components/DeletedNoteTable.kt
index bbda3a2..ee00851 100644
--- a/simplenotes-app/src/main/kotlin/views/components/DeletedNoteTable.kt
+++ b/simplenotes-app/src/main/kotlin/views/components/DeletedNoteTable.kt
@@ -1,7 +1,7 @@
package be.simplenotes.app.views.components
import be.simplenotes.app.utils.toTimeAgo
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNoteMetadata
import kotlinx.html.*
import kotlinx.html.ButtonType.submit
import kotlinx.html.FormMethod.post
diff --git a/simplenotes-app/src/main/kotlin/views/components/NoteTable.kt b/simplenotes-app/src/main/kotlin/views/components/NoteTable.kt
index 3133365..a44bb62 100644
--- a/simplenotes-app/src/main/kotlin/views/components/NoteTable.kt
+++ b/simplenotes-app/src/main/kotlin/views/components/NoteTable.kt
@@ -1,7 +1,7 @@
package be.simplenotes.app.views.components
import be.simplenotes.app.utils.toTimeAgo
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNoteMetadata
import kotlinx.html.*
import kotlinx.html.ThScope.col
diff --git a/simplenotes-domain/pom.xml b/simplenotes-domain/pom.xml
index fcf7999..4b3fb83 100644
--- a/simplenotes-domain/pom.xml
+++ b/simplenotes-domain/pom.xml
@@ -24,14 +24,14 @@
test
-
- io.arrow-kt
- arrow-core
-
org.koin
koin-core
+
+ io.arrow-kt
+ arrow-core
+
com.natpryce
hamkrest
@@ -83,15 +83,17 @@
owasp-java-html-sanitizer
20200713.1
-
- org.jetbrains.kotlinx
- kotlinx-serialization-json-jvm
-
org.apache.commons
commons-compress
1.20
+
+ be.simplenotes
+ simplenotes-types
+ 1.0-SNAPSHOT
+ compile
+
diff --git a/simplenotes-domain/src/main/kotlin/security/JwtPayload.kt b/simplenotes-domain/src/main/kotlin/security/JwtPayload.kt
index 62e939f..b90f2ff 100644
--- a/simplenotes-domain/src/main/kotlin/security/JwtPayload.kt
+++ b/simplenotes-domain/src/main/kotlin/security/JwtPayload.kt
@@ -1,6 +1,6 @@
package be.simplenotes.domain.security
-import be.simplenotes.domain.model.PersistedUser
+import be.simplenotes.types.PersistedUser
import com.auth0.jwt.exceptions.JWTVerificationException
data class JwtPayload(val userId: Int, val username: String) {
diff --git a/simplenotes-domain/src/main/kotlin/usecases/NoteService.kt b/simplenotes-domain/src/main/kotlin/usecases/NoteService.kt
index 7efe8ef..8f7c70e 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/NoteService.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/NoteService.kt
@@ -2,9 +2,9 @@ package be.simplenotes.domain.usecases
import arrow.core.Either
import arrow.core.extensions.fx
-import be.simplenotes.domain.model.Note
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.Note
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import be.simplenotes.domain.security.HtmlSanitizer
import be.simplenotes.domain.usecases.markdown.MarkdownConverter
import be.simplenotes.domain.usecases.markdown.MarkdownParsingError
diff --git a/simplenotes-domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt
index 05991af..dfd7471 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/export/ExportUseCaseImpl.kt
@@ -1,6 +1,6 @@
package be.simplenotes.domain.usecases.export
-import be.simplenotes.domain.model.ExportedNote
+import be.simplenotes.types.ExportedNote
import be.simplenotes.domain.usecases.repositories.NoteRepository
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.json.Json
diff --git a/simplenotes-domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt b/simplenotes-domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt
index a6adb1f..a0b28a5 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/markdown/MarkdownConverter.kt
@@ -4,7 +4,7 @@ import arrow.core.Either
import arrow.core.extensions.fx
import arrow.core.left
import arrow.core.right
-import be.simplenotes.domain.model.NoteMetadata
+import be.simplenotes.types.NoteMetadata
import be.simplenotes.domain.validation.NoteValidations
import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension
import com.vladsch.flexmark.html.HtmlRenderer
diff --git a/simplenotes-domain/src/main/kotlin/usecases/repositories/NoteRepository.kt b/simplenotes-domain/src/main/kotlin/usecases/repositories/NoteRepository.kt
index e312d8f..e2c7b68 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/repositories/NoteRepository.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/repositories/NoteRepository.kt
@@ -1,9 +1,9 @@
package be.simplenotes.domain.usecases.repositories
-import be.simplenotes.domain.model.ExportedNote
-import be.simplenotes.domain.model.Note
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.ExportedNote
+import be.simplenotes.types.Note
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import java.util.*
interface NoteRepository {
diff --git a/simplenotes-domain/src/main/kotlin/usecases/repositories/UserRepository.kt b/simplenotes-domain/src/main/kotlin/usecases/repositories/UserRepository.kt
index 1f52f34..a4def8f 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/repositories/UserRepository.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/repositories/UserRepository.kt
@@ -1,7 +1,7 @@
package be.simplenotes.domain.usecases.repositories
-import be.simplenotes.domain.model.PersistedUser
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.PersistedUser
+import be.simplenotes.types.User
interface UserRepository {
fun create(user: User): PersistedUser?
diff --git a/simplenotes-domain/src/main/kotlin/usecases/search/SearchUseCase.kt b/simplenotes-domain/src/main/kotlin/usecases/search/SearchUseCase.kt
index aae7896..ed6be90 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/search/SearchUseCase.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/search/SearchUseCase.kt
@@ -1,7 +1,7 @@
package be.simplenotes.domain.usecases.search
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import java.util.*
data class SearchTerms(val title: String?, val tag: String?, val content: String?, val all: String?)
diff --git a/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt b/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt
index 6476f46..eb16064 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUseCaseImpl.kt
@@ -3,7 +3,7 @@ package be.simplenotes.domain.usecases.users.register
import arrow.core.Either
import arrow.core.filterOrElse
import arrow.core.leftIfNull
-import be.simplenotes.domain.model.PersistedUser
+import be.simplenotes.types.PersistedUser
import be.simplenotes.domain.security.PasswordHash
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.domain.validation.UserValidations
diff --git a/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt b/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt
index 3bb748d..c9d635a 100644
--- a/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt
+++ b/simplenotes-domain/src/main/kotlin/usecases/users/register/RegisterUsecase.kt
@@ -1,7 +1,7 @@
package be.simplenotes.domain.usecases.users.register
import arrow.core.Either
-import be.simplenotes.domain.model.PersistedUser
+import be.simplenotes.types.PersistedUser
import be.simplenotes.domain.usecases.users.login.LoginForm
import io.konform.validation.ValidationErrors
diff --git a/simplenotes-domain/src/main/kotlin/validation/NoteValidations.kt b/simplenotes-domain/src/main/kotlin/validation/NoteValidations.kt
index ee60422..0a25b0a 100644
--- a/simplenotes-domain/src/main/kotlin/validation/NoteValidations.kt
+++ b/simplenotes-domain/src/main/kotlin/validation/NoteValidations.kt
@@ -1,7 +1,7 @@
package be.simplenotes.domain.validation
import arrow.core.*
-import be.simplenotes.domain.model.NoteMetadata
+import be.simplenotes.types.NoteMetadata
import be.simplenotes.domain.usecases.markdown.ValidationError
import io.konform.validation.Validation
import io.konform.validation.jsonschema.maxItems
diff --git a/simplenotes-domain/src/main/kotlin/validation/UserValidations.kt b/simplenotes-domain/src/main/kotlin/validation/UserValidations.kt
index d46f490..59bf6da 100644
--- a/simplenotes-domain/src/main/kotlin/validation/UserValidations.kt
+++ b/simplenotes-domain/src/main/kotlin/validation/UserValidations.kt
@@ -3,7 +3,7 @@ package be.simplenotes.domain.validation
import arrow.core.Either
import arrow.core.left
import arrow.core.right
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.User
import be.simplenotes.domain.usecases.users.delete.DeleteError
import be.simplenotes.domain.usecases.users.delete.DeleteForm
import be.simplenotes.domain.usecases.users.login.InvalidLoginForm
diff --git a/simplenotes-domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt b/simplenotes-domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt
index e869ad1..b2829ac 100644
--- a/simplenotes-domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt
+++ b/simplenotes-domain/src/test/kotlin/usecases/users/login/LoginUseCaseImplTest.kt
@@ -1,6 +1,6 @@
package be.simplenotes.domain.usecases.users.login
-import be.simplenotes.domain.model.PersistedUser
+import be.simplenotes.types.PersistedUser
import be.simplenotes.domain.security.BcryptPasswordHash
import be.simplenotes.domain.security.SimpleJwt
import be.simplenotes.domain.usecases.repositories.UserRepository
diff --git a/simplenotes-domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt b/simplenotes-domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt
index 3c7140d..08eedfa 100644
--- a/simplenotes-domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt
+++ b/simplenotes-domain/src/test/kotlin/usecases/users/register/RegisterUseCaseImplTest.kt
@@ -1,6 +1,6 @@
package be.simplenotes.domain.usecases.users.register
-import be.simplenotes.domain.model.PersistedUser
+import be.simplenotes.types.PersistedUser
import be.simplenotes.domain.security.BcryptPasswordHash
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.shared.testutils.assertions.isLeftOfType
diff --git a/simplenotes-persistance/pom.xml b/simplenotes-persistance/pom.xml
index 5aaf503..da901df 100644
--- a/simplenotes-persistance/pom.xml
+++ b/simplenotes-persistance/pom.xml
@@ -20,6 +20,11 @@
simplenotes-domain
1.0-SNAPSHOT
+
+ be.simplenotes
+ simplenotes-types
+ 1.0-SNAPSHOT
+
be.simplenotes
simplenotes-shared
@@ -33,6 +38,11 @@
test
+
+ org.koin
+ koin-core
+
+
org.assertj
assertj-core
diff --git a/simplenotes-persistance/src/main/kotlin/PersistanceModule.kt b/simplenotes-persistance/src/main/kotlin/PersistanceModule.kt
index 0769295..bfe9d67 100644
--- a/simplenotes-persistance/src/main/kotlin/PersistanceModule.kt
+++ b/simplenotes-persistance/src/main/kotlin/PersistanceModule.kt
@@ -3,9 +3,7 @@ package be.simplenotes.persistance
import be.simplenotes.domain.usecases.repositories.NoteRepository
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.persistance.converters.NoteConverter
-import be.simplenotes.persistance.converters.NoteConverterImpl
import be.simplenotes.persistance.converters.UserConverter
-import be.simplenotes.persistance.converters.UserConverterImpl
import be.simplenotes.persistance.notes.NoteRepositoryImpl
import be.simplenotes.persistance.users.UserRepositoryImpl
import be.simplenotes.shared.config.DataSourceConfig
@@ -15,6 +13,7 @@ import me.liuwj.ktorm.database.Database
import org.koin.dsl.bind
import org.koin.dsl.module
import org.koin.dsl.onClose
+import org.mapstruct.factory.Mappers
import javax.sql.DataSource
private fun hikariDataSource(conf: DataSourceConfig): HikariDataSource {
@@ -34,8 +33,8 @@ val migrationModule = module {
}
val persistanceModule = module {
- single { NoteConverterImpl() }
- single { UserConverterImpl() }
+ single { Mappers.getMapper(NoteConverter::class.java) }
+ single { Mappers.getMapper(UserConverter::class.java) }
single { UserRepositoryImpl(get(), get()) }
single { NoteRepositoryImpl(get(), get()) }
single { hikariDataSource(get()) } bind DataSource::class onClose { it?.close() }
diff --git a/simplenotes-persistance/src/main/kotlin/converters/NoteConverter.kt b/simplenotes-persistance/src/main/kotlin/converters/NoteConverter.kt
index 1939a52..8fbc6fc 100644
--- a/simplenotes-persistance/src/main/kotlin/converters/NoteConverter.kt
+++ b/simplenotes-persistance/src/main/kotlin/converters/NoteConverter.kt
@@ -1,6 +1,6 @@
package be.simplenotes.persistance.converters
-import be.simplenotes.domain.model.*
+import be.simplenotes.types.*
import be.simplenotes.persistance.notes.NoteEntity
import me.liuwj.ktorm.entity.Entity
import org.mapstruct.Mapper
diff --git a/simplenotes-persistance/src/main/kotlin/converters/UserConverter.kt b/simplenotes-persistance/src/main/kotlin/converters/UserConverter.kt
index 6520003..4309e92 100644
--- a/simplenotes-persistance/src/main/kotlin/converters/UserConverter.kt
+++ b/simplenotes-persistance/src/main/kotlin/converters/UserConverter.kt
@@ -1,7 +1,7 @@
package be.simplenotes.persistance.converters
-import be.simplenotes.domain.model.PersistedUser
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.PersistedUser
+import be.simplenotes.types.User
import be.simplenotes.persistance.users.UserEntity
import me.liuwj.ktorm.entity.Entity
import org.mapstruct.Mapper
diff --git a/simplenotes-persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt b/simplenotes-persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt
index 3b65189..f2cc46d 100644
--- a/simplenotes-persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt
+++ b/simplenotes-persistance/src/main/kotlin/notes/NoteRepositoryImpl.kt
@@ -1,9 +1,9 @@
package be.simplenotes.persistance.notes
-import be.simplenotes.domain.model.ExportedNote
-import be.simplenotes.domain.model.Note
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.ExportedNote
+import be.simplenotes.types.Note
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import be.simplenotes.domain.usecases.repositories.NoteRepository
import be.simplenotes.persistance.converters.NoteConverter
import me.liuwj.ktorm.database.Database
diff --git a/simplenotes-persistance/src/main/kotlin/users/UserRepositoryImpl.kt b/simplenotes-persistance/src/main/kotlin/users/UserRepositoryImpl.kt
index 5e20ba0..1a33f57 100644
--- a/simplenotes-persistance/src/main/kotlin/users/UserRepositoryImpl.kt
+++ b/simplenotes-persistance/src/main/kotlin/users/UserRepositoryImpl.kt
@@ -1,7 +1,7 @@
package be.simplenotes.persistance.users
-import be.simplenotes.domain.model.PersistedUser
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.PersistedUser
+import be.simplenotes.types.User
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.persistance.converters.UserConverter
import me.liuwj.ktorm.database.Database
diff --git a/simplenotes-persistance/src/test/kotlin/converters/NoteConverterTest.kt b/simplenotes-persistance/src/test/kotlin/converters/NoteConverterTest.kt
index 2e2db90..18dfc8e 100644
--- a/simplenotes-persistance/src/test/kotlin/converters/NoteConverterTest.kt
+++ b/simplenotes-persistance/src/test/kotlin/converters/NoteConverterTest.kt
@@ -1,6 +1,6 @@
package be.simplenotes.persistance.converters
-import be.simplenotes.domain.model.*
+import be.simplenotes.types.*
import be.simplenotes.persistance.notes.NoteEntity
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.DisplayName
diff --git a/simplenotes-persistance/src/test/kotlin/converters/UserConverterTest.kt b/simplenotes-persistance/src/test/kotlin/converters/UserConverterTest.kt
index c8fd91f..9b42f1e 100644
--- a/simplenotes-persistance/src/test/kotlin/converters/UserConverterTest.kt
+++ b/simplenotes-persistance/src/test/kotlin/converters/UserConverterTest.kt
@@ -1,7 +1,7 @@
package be.simplenotes.persistance.converters
-import be.simplenotes.domain.model.PersistedUser
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.PersistedUser
+import be.simplenotes.types.User
import be.simplenotes.persistance.users.UserEntity
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
diff --git a/simplenotes-persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt b/simplenotes-persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt
index 577ccb9..d6fa766 100644
--- a/simplenotes-persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt
+++ b/simplenotes-persistance/src/test/kotlin/notes/NoteRepositoryImplTest.kt
@@ -1,6 +1,6 @@
package be.simplenotes.persistance.notes
-import be.simplenotes.domain.model.*
+import be.simplenotes.types.*
import be.simplenotes.domain.usecases.repositories.NoteRepository
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.persistance.DbMigrations
diff --git a/simplenotes-persistance/src/test/kotlin/users/UserRepositoryImplTest.kt b/simplenotes-persistance/src/test/kotlin/users/UserRepositoryImplTest.kt
index c888f1d..ade0709 100644
--- a/simplenotes-persistance/src/test/kotlin/users/UserRepositoryImplTest.kt
+++ b/simplenotes-persistance/src/test/kotlin/users/UserRepositoryImplTest.kt
@@ -1,6 +1,6 @@
package be.simplenotes.persistance.users
-import be.simplenotes.domain.model.User
+import be.simplenotes.types.User
import be.simplenotes.domain.usecases.repositories.UserRepository
import be.simplenotes.persistance.DbMigrations
import be.simplenotes.persistance.migrationModule
diff --git a/simplenotes-search/pom.xml b/simplenotes-search/pom.xml
index 76f8e39..08eebdd 100644
--- a/simplenotes-search/pom.xml
+++ b/simplenotes-search/pom.xml
@@ -16,6 +16,11 @@
+
+ be.simplenotes
+ simplenotes-types
+ 1.0-SNAPSHOT
+
be.simplenotes
simplenotes-domain
@@ -41,6 +46,10 @@
org.slf4j
slf4j-api
+
+ org.koin
+ koin-core
+
org.junit.jupiter
diff --git a/simplenotes-search/src/main/kotlin/Extractors.kt b/simplenotes-search/src/main/kotlin/Extractors.kt
index 256b343..a45a7ab 100644
--- a/simplenotes-search/src/main/kotlin/Extractors.kt
+++ b/simplenotes-search/src/main/kotlin/Extractors.kt
@@ -1,7 +1,7 @@
package be.simplenotes.search
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import org.apache.lucene.document.Document
import org.apache.lucene.document.Field
import org.apache.lucene.document.StringField
diff --git a/simplenotes-search/src/main/kotlin/NoteSearcherImpl.kt b/simplenotes-search/src/main/kotlin/NoteSearcherImpl.kt
index 9c3c121..8444e5d 100644
--- a/simplenotes-search/src/main/kotlin/NoteSearcherImpl.kt
+++ b/simplenotes-search/src/main/kotlin/NoteSearcherImpl.kt
@@ -1,6 +1,6 @@
package be.simplenotes.search
-import be.simplenotes.domain.model.PersistedNote
+import be.simplenotes.types.PersistedNote
import be.simplenotes.domain.usecases.search.NoteSearcher
import be.simplenotes.domain.usecases.search.SearchTerms
import be.simplenotes.search.utils.rmdir
diff --git a/simplenotes-search/src/test/kotlin/NoteSearcherImplTest.kt b/simplenotes-search/src/test/kotlin/NoteSearcherImplTest.kt
index 2fdd159..8d67f8c 100644
--- a/simplenotes-search/src/test/kotlin/NoteSearcherImplTest.kt
+++ b/simplenotes-search/src/test/kotlin/NoteSearcherImplTest.kt
@@ -1,8 +1,8 @@
package be.simplenotes.search
-import be.simplenotes.domain.model.NoteMetadata
-import be.simplenotes.domain.model.PersistedNote
-import be.simplenotes.domain.model.PersistedNoteMetadata
+import be.simplenotes.types.NoteMetadata
+import be.simplenotes.types.PersistedNote
+import be.simplenotes.types.PersistedNoteMetadata
import be.simplenotes.domain.usecases.search.SearchTerms
import org.assertj.core.api.Assertions.assertThat
import org.intellij.lang.annotations.Language
diff --git a/simplenotes-types/pom.xml b/simplenotes-types/pom.xml
new file mode 100644
index 0000000..fba64c7
--- /dev/null
+++ b/simplenotes-types/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ simplenotes-parent
+ be.simplenotes
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ simplenotes-types
+
+
+
+ org.jetbrains.kotlinx
+ kotlinx-serialization-json-jvm
+
+
+
+
diff --git a/simplenotes-domain/src/main/kotlin/model/Note.kt b/simplenotes-types/src/main/kotlin/Note.kt
similarity index 96%
rename from simplenotes-domain/src/main/kotlin/model/Note.kt
rename to simplenotes-types/src/main/kotlin/Note.kt
index c2697b4..75936b1 100644
--- a/simplenotes-domain/src/main/kotlin/model/Note.kt
+++ b/simplenotes-types/src/main/kotlin/Note.kt
@@ -1,4 +1,4 @@
-package be.simplenotes.domain.model
+package be.simplenotes.types
import kotlinx.serialization.Contextual
import kotlinx.serialization.Serializable
diff --git a/simplenotes-domain/src/main/kotlin/model/User.kt b/simplenotes-types/src/main/kotlin/User.kt
similarity index 79%
rename from simplenotes-domain/src/main/kotlin/model/User.kt
rename to simplenotes-types/src/main/kotlin/User.kt
index ce87914..bd93f58 100644
--- a/simplenotes-domain/src/main/kotlin/model/User.kt
+++ b/simplenotes-types/src/main/kotlin/User.kt
@@ -1,4 +1,4 @@
-package be.simplenotes.domain.model
+package be.simplenotes.types
data class User(val username: String, val password: String)
data class PersistedUser(val username: String, val password: String, val id: Int)