add EntityDeletedBy & EntityDeletedAt
This commit is contained in:
@@ -36,6 +36,14 @@ interface EntityUpdatedAt {
|
|||||||
var updatedAt: DateTime?
|
var updatedAt: DateTime?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface EntityDeletedAt {
|
||||||
|
var deletedAt: DateTime?
|
||||||
|
fun isDeleted(): Boolean {
|
||||||
|
val deletedAt = deletedAt
|
||||||
|
return deletedAt != null && deletedAt < DateTime.now()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class EntityCreatedAtImp: EntityCreatedAt {
|
class EntityCreatedAtImp: EntityCreatedAt {
|
||||||
override var createdAt: DateTime? = null
|
override var createdAt: DateTime? = null
|
||||||
}
|
}
|
||||||
@@ -44,6 +52,10 @@ class EntityUpdatedAtImp: EntityUpdatedAt {
|
|||||||
override var updatedAt: DateTime? = null
|
override var updatedAt: DateTime? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class EntityDeletedAtImp: EntityDeletedAt {
|
||||||
|
override var deletedAt: DateTime? = null
|
||||||
|
}
|
||||||
|
|
||||||
/* Author */
|
/* Author */
|
||||||
interface EntityCreatedBy<T: EntityI<*>> {
|
interface EntityCreatedBy<T: EntityI<*>> {
|
||||||
var createdBy: T?
|
var createdBy: T?
|
||||||
@@ -53,6 +65,10 @@ interface EntityUpdatedBy<T: EntityI<*>> {
|
|||||||
var updatedBy: T?
|
var updatedBy: T?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface EntityDeletedBy<T: EntityI<*>> {
|
||||||
|
var deletedBy: T?
|
||||||
|
}
|
||||||
|
|
||||||
class EntityCreatedByImp<UserT: EntityI<*>>(
|
class EntityCreatedByImp<UserT: EntityI<*>>(
|
||||||
override var createdBy: UserT?
|
override var createdBy: UserT?
|
||||||
): EntityCreatedBy<UserT>
|
): EntityCreatedBy<UserT>
|
||||||
@@ -61,6 +77,28 @@ class EntityUpdatedByImp<UserT: EntityI<*>>(
|
|||||||
override var updatedBy: UserT?
|
override var updatedBy: UserT?
|
||||||
): EntityUpdatedBy<UserT>
|
): EntityUpdatedBy<UserT>
|
||||||
|
|
||||||
|
class EntityDeletedByImp<UserT: EntityI<*>>(
|
||||||
|
override var deletedBy: UserT?
|
||||||
|
): EntityDeletedBy<UserT>
|
||||||
|
|
||||||
|
/* Mixed */
|
||||||
|
class EntityDeletedImp<UserT: EntityI<*>>(
|
||||||
|
override var deletedBy: UserT? = null
|
||||||
|
): EntityDeletedBy<UserT>,
|
||||||
|
EntityDeletedAt by EntityDeletedAtImp()
|
||||||
|
|
||||||
|
class EntityUpdatedImp<UserT: EntityI<*>>(
|
||||||
|
override var updatedAt: DateTime? = null,
|
||||||
|
override var updatedBy: UserT? = null
|
||||||
|
): EntityUpdatedBy<UserT>,
|
||||||
|
EntityUpdatedAt by EntityUpdatedAtImp()
|
||||||
|
|
||||||
|
class EntityCreatedImp<UserT: EntityI<*>>(
|
||||||
|
override var createdAt: DateTime? = null,
|
||||||
|
override var createdBy: UserT? = null
|
||||||
|
): EntityCreatedBy<UserT>,
|
||||||
|
EntityCreatedAt by EntityCreatedAtImp()
|
||||||
|
|
||||||
/* Published */
|
/* Published */
|
||||||
interface Published<UserT: EntityI<*>> {
|
interface Published<UserT: EntityI<*>> {
|
||||||
var publishedAt: DateTime?
|
var publishedAt: DateTime?
|
||||||
@@ -79,8 +117,10 @@ abstract class EntityImp<T, UserT: EntityI<*>>(
|
|||||||
): Entity<T>(),
|
): Entity<T>(),
|
||||||
EntityCreatedAt by EntityCreatedAtImp(),
|
EntityCreatedAt by EntityCreatedAtImp(),
|
||||||
EntityUpdatedAt by EntityUpdatedAtImp(),
|
EntityUpdatedAt by EntityUpdatedAtImp(),
|
||||||
|
EntityDeletedAt by EntityDeletedAtImp(),
|
||||||
EntityCreatedBy<UserT> by EntityCreatedByImp(updatedBy),
|
EntityCreatedBy<UserT> by EntityCreatedByImp(updatedBy),
|
||||||
EntityUpdatedBy<UserT> by EntityUpdatedByImp(updatedBy)
|
EntityUpdatedBy<UserT> by EntityUpdatedByImp(updatedBy),
|
||||||
|
EntityDeletedBy<UserT> by EntityDeletedByImp(updatedBy)
|
||||||
|
|
||||||
abstract class UuidEntityExtended<T, UserT: EntityI<*>>(
|
abstract class UuidEntityExtended<T, UserT: EntityI<*>>(
|
||||||
updatedBy: UserT?,
|
updatedBy: UserT?,
|
||||||
|
|||||||
Reference in New Issue
Block a user