generated from pricelees/issue-pr-template
66 lines
1.6 KiB
Kotlin
66 lines
1.6 KiB
Kotlin
package roomescape.schedule.web
|
|
|
|
import roomescape.schedule.infrastructure.persistence.ScheduleEntity
|
|
import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
|
import java.time.LocalDate
|
|
import java.time.LocalDateTime
|
|
import java.time.LocalTime
|
|
|
|
data class AvailableThemeIdListResponse(
|
|
val themeIds: List<Long>
|
|
)
|
|
|
|
fun List<ScheduleEntity>.toThemeIdListResponse() = AvailableThemeIdListResponse(this.map { it.themeId })
|
|
|
|
data class ScheduleRetrieveResponse(
|
|
val id: Long,
|
|
val time: LocalTime,
|
|
val status: ScheduleStatus
|
|
)
|
|
|
|
data class ScheduleRetrieveListResponse(
|
|
val schedules: List<ScheduleRetrieveResponse>
|
|
)
|
|
|
|
fun List<ScheduleEntity>.toRetrieveListResponse() = ScheduleRetrieveListResponse(
|
|
this.map { ScheduleRetrieveResponse(it.id, it.time, it.status) }
|
|
)
|
|
|
|
data class ScheduleCreateRequest(
|
|
val date: LocalDate,
|
|
val time: LocalTime,
|
|
|
|
val themeId: Long
|
|
)
|
|
|
|
data class ScheduleCreateResponse(
|
|
val id: Long
|
|
)
|
|
|
|
data class ScheduleUpdateRequest(
|
|
val time: LocalTime? = null,
|
|
val status: ScheduleStatus? = null
|
|
)
|
|
|
|
data class ScheduleDetailRetrieveResponse(
|
|
val id: Long,
|
|
val date: LocalDate,
|
|
val time: LocalTime,
|
|
val status: ScheduleStatus,
|
|
val createdAt: LocalDateTime,
|
|
val createdBy: String,
|
|
val updatedAt: LocalDateTime,
|
|
val updatedBy: String,
|
|
)
|
|
|
|
fun ScheduleEntity.toDetailRetrieveResponse(createdBy: String, updatedBy: String) = ScheduleDetailRetrieveResponse(
|
|
id = this.id,
|
|
date = this.date,
|
|
time = this.time,
|
|
status = this.status,
|
|
createdAt = this.createdAt,
|
|
createdBy = createdBy,
|
|
updatedAt = this.updatedAt,
|
|
updatedBy = updatedBy
|
|
)
|