generated from pricelees/issue-pr-template
56 lines
1.4 KiB
Kotlin
56 lines
1.4 KiB
Kotlin
package roomescape.schedule.web
|
|
|
|
import roomescape.schedule.business.domain.ScheduleOverview
|
|
import roomescape.schedule.infrastructure.persistence.ScheduleStatus
|
|
import java.time.LocalDate
|
|
import java.time.LocalTime
|
|
|
|
// ========================================
|
|
// All-Admin DTO (본사 + 매장)
|
|
// ========================================
|
|
data class AdminScheduleSummaryResponse(
|
|
val id: Long,
|
|
val themeName: String,
|
|
val startFrom: LocalTime,
|
|
val endAt: LocalTime,
|
|
val status: ScheduleStatus,
|
|
)
|
|
|
|
fun ScheduleOverview.toAdminSummaryResponse() = AdminScheduleSummaryResponse(
|
|
id = this.id,
|
|
themeName = this.themeName,
|
|
startFrom = this.time,
|
|
endAt = this.getEndAt(),
|
|
status = this.status
|
|
)
|
|
|
|
data class AdminScheduleSummaryListResponse(
|
|
val schedules: List<AdminScheduleSummaryResponse>
|
|
)
|
|
|
|
fun List<ScheduleOverview>.toAdminSummaryListResponse() = AdminScheduleSummaryListResponse(
|
|
this.map { it.toAdminSummaryResponse() }
|
|
)
|
|
|
|
// ========================================
|
|
// Store Admin DTO (매장)
|
|
// ========================================
|
|
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
|
|
) {
|
|
fun isAllParamsNull(): Boolean {
|
|
return time == null && status == null
|
|
}
|
|
}
|