diff --git a/src/main/kotlin/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt b/src/main/kotlin/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt index 1b87278d..93e30bf7 100644 --- a/src/main/kotlin/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt +++ b/src/main/kotlin/roomescape/schedule/infrastructure/persistence/ScheduleEntity.kt @@ -45,12 +45,29 @@ class ScheduleEntity( ) { time?.let { this.time = it } status?.let { this.status = it } - MdcPrincipalId.extractAsLongOrNull()?.also { this.updatedBy = it } + updateLastModifiedBy() } fun hold() { this.status = ScheduleStatus.HOLD } + + fun updateLastModifiedBy() { + MdcPrincipalId.extractAsLongOrNull()?.also { this.updatedBy = it } + } +} + +object ScheduleEntityFactory { + fun create(id: Long, date: LocalDate, time: LocalTime, storeId: Long, themeId: Long): ScheduleEntity { + return ScheduleEntity( + id = id, + date = date, + time = time, + storeId = storeId, + themeId = themeId, + status = ScheduleStatus.AVAILABLE + ).apply { this.updateLastModifiedBy() } + } } enum class ScheduleStatus {