diff --git a/Projects/Presentation/Sources/RoutineCreation/View/RoutineCreationViewController.swift b/Projects/Presentation/Sources/RoutineCreation/View/RoutineCreationViewController.swift index 843bf6a..981b9ed 100644 --- a/Projects/Presentation/Sources/RoutineCreation/View/RoutineCreationViewController.swift +++ b/Projects/Presentation/Sources/RoutineCreation/View/RoutineCreationViewController.swift @@ -43,7 +43,7 @@ final class RoutineCreationViewController: BaseViewController( title: "반복 요일", diff --git a/Projects/Presentation/Sources/RoutineCreation/ViewModel/RoutineCreationViewModel.swift b/Projects/Presentation/Sources/RoutineCreation/ViewModel/RoutineCreationViewModel.swift index 5bc11b1..d5dbac6 100644 --- a/Projects/Presentation/Sources/RoutineCreation/ViewModel/RoutineCreationViewModel.swift +++ b/Projects/Presentation/Sources/RoutineCreation/ViewModel/RoutineCreationViewModel.swift @@ -56,6 +56,7 @@ final class RoutineCreationViewModel: ViewModel { private let checkRoutinePublisher = CurrentValueSubject(false) private let routineUseCase: RoutineUseCaseProtocol private let recommenededRoutineUseCase: RecommendedRoutineUseCaseProtocol + private let maxSubRoutineCount: Int = 3 private var deletedSubroutines = Set() private var routineId: String? private var routineType: RoutineCategoryType? @@ -143,7 +144,11 @@ final class RoutineCreationViewModel: ViewModel { executionType = .init(startAt: time ?? Date()) // TODO: - routine 엔티티 변경 이후 시작일자, 종료 일자 설정 필요 + 추천 타입 있으면 추천 타입도 설정 필요 + let periodStart = Date.convertToDate(from: routine.routineStartDate, dateType: .yearMonthDate) + let periodEnd = Date.convertToDate(from: routine.routineEndDate, dateType: .yearMonthDate) + periodStartSubject.send(periodStart) + periodEndSubject.send(periodEnd) nameSubject.send(routine.routineName) subRoutinesSubject.send(subRoutines) repeatTypeSubject.send(repeatType) @@ -182,9 +187,11 @@ final class RoutineCreationViewModel: ViewModel { var subRoutines = subRoutinesSubject.value guard index >= 0, - index < subRoutines.count + index < maxSubRoutineCount else { return } + while subRoutines.count <= index { subRoutines.append("") } + subRoutines[index] = name subRoutinesSubject.send(subRoutines) } @@ -268,6 +275,8 @@ final class RoutineCreationViewModel: ViewModel { repeatDay = [] } + let subroutines = subRoutinesSubject.value.filter { !$0.isEmpty } + let routine = RoutineCreationEntity( id: routineId, name: name, @@ -275,7 +284,7 @@ final class RoutineCreationViewModel: ViewModel { startDate: startDateString, endDate: endDateString, executionTime: executionTimeString, - subroutines: subRoutinesSubject.value, + subroutines: subroutines, recommendedRoutineType: routineType, applyDateType: updateType)