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 ) fun List.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 } }