Package-level declarations

Types

Link copied to clipboard
open class AggregateRoot<Id : EntityId<*>>(id: Id) : Entity<Id>

Base class for aggregate roots in Domain-Driven Design.

Link copied to clipboard
open class Entity<Id : EntityId<*>>(val id: Id)

Base class for domain entities.

Link copied to clipboard
open class EntityId<Id>(val value: Id)

Base value object for entity identifiers.

Link copied to clipboard
interface Factory<E : Entity<*>>

Factory interface for creating domain entities.

Link copied to clipboard
interface Repository<Id : EntityId<*>, E : Entity<Id>>

Repository interface for persisting and retrieving entities.

Link copied to clipboard
open class UUIDEntityId(val value: String = newId()) : EntityId<String>

A common EntityId implementation that uses UUID strings as identifiers. This class can be extended by entities that require a unique identifier.

Functions

Link copied to clipboard
expect fun getUUID(): String
actual fun getUUID(): String
actual fun getUUID(): String