From 7742287884033003adf95bae8c99923eecc04b4f Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Sat, 8 Feb 2020 01:03:16 +0100 Subject: [PATCH] Add Opinion entity and add opinions on article --- src/main/kotlin/fr/dcproject/entity/Article.kt | 3 ++- src/main/kotlin/fr/dcproject/entity/Opinion.kt | 14 ++++++++++++++ src/main/kotlin/fr/dcproject/entity/Opinionable.kt | 9 +++++++++ src/test/kotlin/feature/ConstitutionSteps.kt | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/fr/dcproject/entity/Opinion.kt create mode 100644 src/main/kotlin/fr/dcproject/entity/Opinionable.kt diff --git a/src/main/kotlin/fr/dcproject/entity/Article.kt b/src/main/kotlin/fr/dcproject/entity/Article.kt index 8d55a43..7d34277 100644 --- a/src/main/kotlin/fr/dcproject/entity/Article.kt +++ b/src/main/kotlin/fr/dcproject/entity/Article.kt @@ -46,7 +46,8 @@ open class ArticleSimple( EntityCreatedBy by EntityCreatedByImp(createdBy), EntityDeletedAt by EntityDeletedAtImp(), EntityVersioning by UuidEntityVersioning(), - Votable by VotableImp() + Votable by VotableImp(), + Opinionable by OpinionableImp() open class ArticleRef( id: UUID = UUID.randomUUID() diff --git a/src/main/kotlin/fr/dcproject/entity/Opinion.kt b/src/main/kotlin/fr/dcproject/entity/Opinion.kt new file mode 100644 index 0000000..5de8699 --- /dev/null +++ b/src/main/kotlin/fr/dcproject/entity/Opinion.kt @@ -0,0 +1,14 @@ +package fr.dcproject.entity + +import fr.postgresjson.entity.immutable.* +import java.util.* + +open class Opinion( + id: UUID = UUID.randomUUID(), + override val createdBy: CitizenBasic, + override var target: T, + var name: String +) : ExtraI, + UuidEntity(id), + EntityCreatedAt by EntityCreatedAtImp(), + EntityCreatedBy by EntityCreatedByImp(createdBy) diff --git a/src/main/kotlin/fr/dcproject/entity/Opinionable.kt b/src/main/kotlin/fr/dcproject/entity/Opinionable.kt new file mode 100644 index 0000000..5100382 --- /dev/null +++ b/src/main/kotlin/fr/dcproject/entity/Opinionable.kt @@ -0,0 +1,9 @@ +package fr.dcproject.entity + +interface Opinionable { + val opinions: MutableMap +} + +class OpinionableImp : Opinionable { + override val opinions: MutableMap = mutableMapOf() +} \ No newline at end of file diff --git a/src/test/kotlin/feature/ConstitutionSteps.kt b/src/test/kotlin/feature/ConstitutionSteps.kt index 87dab5d..6d4ea23 100644 --- a/src/test/kotlin/feature/ConstitutionSteps.kt +++ b/src/test/kotlin/feature/ConstitutionSteps.kt @@ -17,6 +17,7 @@ class ConstitutionSteps : En, KoinTest { init { Given("I have constitution with id {string}") { id: String -> var citizen = Citizen( + id = UUID.fromString(id), name = CitizenI.Name("John", "Doe"), email = "john.doe@gmail.com", birthday = DateTime.now(),