From 4eaa9c0cb051b6fdfeb5d605140430f1ec85d7f7 Mon Sep 17 00:00:00 2001 From: wjdrjs00 Date: Thu, 5 Mar 2026 18:28:54 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20WriteRoutine=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EB=B0=8F=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=A0=88=EC=9D=B4=EC=96=B4=EB=A5=BC=20Routine=20?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bitnagil/di/data/DataSourceModule.kt | 6 -- .../bitnagil/di/data/RepositoryModule.kt | 6 -- .../bitnagil/di/data/ServiceModule.kt | 6 -- .../datasource/RoutineRemoteDataSource.kt | 4 + .../RoutineRemoteDataSourceImpl.kt | 12 +++ .../model/request/RoutineEditRequest.kt | 40 ++++++++++ .../model/request/RoutineRegisterRequest.kt | 37 +++++++++ .../repositoryImpl/RoutineRepositoryImpl.kt | 27 +++++++ .../data/routine/service/RoutineService.kt | 14 ++++ .../datasource/WriteRoutineDataSource.kt | 9 --- .../WriteRoutineDataSourceImpl.kt | 24 ------ .../model/request/EditRoutineRequest.kt | 26 ------- .../model/request/RegisterRoutineRequest.kt | 24 ------ .../WriteRoutineRepositoryImpl.kt | 76 ------------------- .../service/WriteRoutineService.kt | 20 ----- .../domain/routine/model/RoutineEditInfo.kt | 15 ++++ .../routine/model/RoutineRegisterInfo.kt | 15 ++++ .../model/RoutineUpdateType.kt | 2 +- .../routine/model/SubRoutineDeletionInfo.kt | 6 -- .../model/WriteRoutineEvent.kt | 2 +- .../routine/repository/RoutineRepository.kt | 7 ++ .../routine/usecase/EditRoutineUseCase.kt | 37 +++++++++ .../GetWriteRoutineEventFlowUseCase.kt | 12 +++ .../routine/usecase/RegisterRoutineUseCase.kt | 35 +++++++++ .../domain/writeroutine/model/RepeatDay.kt | 15 ---- .../repository/WriteRoutineRepository.kt | 34 --------- .../usecase/EditRoutineUseCase.kt | 34 --------- .../GetWriteRoutineEventFlowUseCase.kt | 12 --- .../usecase/RegisterRoutineUseCase.kt | 32 -------- .../presentation/screen/home/HomeViewModel.kt | 2 +- .../routinelist/RoutineListViewModel.kt | 2 +- ...{RoutineWrite.kt => RoutineWriteScreen.kt} | 0 .../routinewrite/RoutineWriteViewModel.kt | 22 +++--- .../screen/routinewrite/model/Day.kt | 17 ++--- 34 files changed, 278 insertions(+), 354 deletions(-) create mode 100644 data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineEditRequest.kt create mode 100644 data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineRegisterRequest.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasource/WriteRoutineDataSource.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasourceImpl/WriteRoutineDataSourceImpl.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/EditRoutineRequest.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/RegisterRoutineRequest.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/repositoryImpl/WriteRoutineRepositoryImpl.kt delete mode 100644 data/src/main/java/com/threegap/bitnagil/data/writeroutine/service/WriteRoutineService.kt create mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineEditInfo.kt create mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineRegisterInfo.kt rename domain/src/main/java/com/threegap/bitnagil/domain/{writeroutine => routine}/model/RoutineUpdateType.kt (65%) delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/model/SubRoutineDeletionInfo.kt rename domain/src/main/java/com/threegap/bitnagil/domain/{writeroutine => routine}/model/WriteRoutineEvent.kt (73%) create mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/EditRoutineUseCase.kt create mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/GetWriteRoutineEventFlowUseCase.kt create mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/RegisterRoutineUseCase.kt delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RepeatDay.kt delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/repository/WriteRoutineRepository.kt delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/EditRoutineUseCase.kt delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/GetWriteRoutineEventFlowUseCase.kt delete mode 100644 domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/RegisterRoutineUseCase.kt rename presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/{RoutineWrite.kt => RoutineWriteScreen.kt} (100%) diff --git a/app/src/main/java/com/threegap/bitnagil/di/data/DataSourceModule.kt b/app/src/main/java/com/threegap/bitnagil/di/data/DataSourceModule.kt index 0d399e5a..6f59ec1a 100644 --- a/app/src/main/java/com/threegap/bitnagil/di/data/DataSourceModule.kt +++ b/app/src/main/java/com/threegap/bitnagil/di/data/DataSourceModule.kt @@ -24,8 +24,6 @@ import com.threegap.bitnagil.data.user.datasource.UserDataSource import com.threegap.bitnagil.data.user.datasourceImpl.UserDataSourceImpl import com.threegap.bitnagil.data.version.datasource.VersionDataSource import com.threegap.bitnagil.data.version.datasourceImpl.VersionDataSourceImpl -import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource -import com.threegap.bitnagil.data.writeroutine.datasourceImpl.WriteRoutineDataSourceImpl import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -56,10 +54,6 @@ abstract class DataSourceModule { @Singleton abstract fun bindEmotionDataSource(emotionDataSourceImpl: EmotionDataSourceImpl): EmotionDataSource - @Binds - @Singleton - abstract fun bindWriteRoutineDataSource(writeRoutineDataSourceImpl: WriteRoutineDataSourceImpl): WriteRoutineDataSource - @Binds @Singleton abstract fun bindUserDataSource(userDataSourceImpl: UserDataSourceImpl): UserDataSource diff --git a/app/src/main/java/com/threegap/bitnagil/di/data/RepositoryModule.kt b/app/src/main/java/com/threegap/bitnagil/di/data/RepositoryModule.kt index cc8ddb90..b6670f22 100644 --- a/app/src/main/java/com/threegap/bitnagil/di/data/RepositoryModule.kt +++ b/app/src/main/java/com/threegap/bitnagil/di/data/RepositoryModule.kt @@ -10,7 +10,6 @@ import com.threegap.bitnagil.data.report.repositoryImpl.ReportRepositoryImpl import com.threegap.bitnagil.data.routine.repositoryImpl.RoutineRepositoryImpl import com.threegap.bitnagil.data.user.repositoryImpl.UserRepositoryImpl import com.threegap.bitnagil.data.version.repositoryImpl.VersionRepositoryImpl -import com.threegap.bitnagil.data.writeroutine.repositoryImpl.WriteRoutineRepositoryImpl import com.threegap.bitnagil.domain.address.repository.AddressRepository import com.threegap.bitnagil.domain.auth.repository.AuthRepository import com.threegap.bitnagil.domain.emotion.repository.EmotionRepository @@ -21,7 +20,6 @@ import com.threegap.bitnagil.domain.report.repository.ReportRepository import com.threegap.bitnagil.domain.routine.repository.RoutineRepository import com.threegap.bitnagil.domain.user.repository.UserRepository import com.threegap.bitnagil.domain.version.repository.VersionRepository -import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -48,10 +46,6 @@ abstract class RepositoryModule { @Singleton abstract fun bindEmotionRepository(emotionRepositoryImpl: EmotionRepositoryImpl): EmotionRepository - @Binds - @Singleton - abstract fun bindWriteRoutineRepository(writeRoutineRepositoryImpl: WriteRoutineRepositoryImpl): WriteRoutineRepository - @Binds @Singleton abstract fun bindUserRepository(userRepositoryImpl: UserRepositoryImpl): UserRepository diff --git a/app/src/main/java/com/threegap/bitnagil/di/data/ServiceModule.kt b/app/src/main/java/com/threegap/bitnagil/di/data/ServiceModule.kt index 602d4a26..de3a1797 100644 --- a/app/src/main/java/com/threegap/bitnagil/di/data/ServiceModule.kt +++ b/app/src/main/java/com/threegap/bitnagil/di/data/ServiceModule.kt @@ -10,7 +10,6 @@ import com.threegap.bitnagil.data.report.service.ReportService import com.threegap.bitnagil.data.routine.service.RoutineService import com.threegap.bitnagil.data.user.service.UserService import com.threegap.bitnagil.data.version.service.VersionService -import com.threegap.bitnagil.data.writeroutine.service.WriteRoutineService import com.threegap.bitnagil.network.Auth import com.threegap.bitnagil.network.Kakao import com.threegap.bitnagil.network.NoneAuth @@ -46,11 +45,6 @@ object ServiceModule { fun providerEmotionService(@Auth retrofit: Retrofit): EmotionService = retrofit.create(EmotionService::class.java) - @Provides - @Singleton - fun providerWriteRoutineService(@Auth retrofit: Retrofit): WriteRoutineService = - retrofit.create(WriteRoutineService::class.java) - @Provides @Singleton fun provideReissueService(@NoneAuth retrofit: Retrofit): ReissueService = diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/datasource/RoutineRemoteDataSource.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/datasource/RoutineRemoteDataSource.kt index 9df14a8c..4e2e711d 100644 --- a/data/src/main/java/com/threegap/bitnagil/data/routine/datasource/RoutineRemoteDataSource.kt +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/datasource/RoutineRemoteDataSource.kt @@ -1,6 +1,8 @@ package com.threegap.bitnagil.data.routine.datasource import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest import com.threegap.bitnagil.data.routine.model.response.RoutineResponse import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse @@ -10,4 +12,6 @@ interface RoutineRemoteDataSource { suspend fun getRoutine(routineId: String): Result suspend fun deleteRoutine(routineId: String): Result suspend fun deleteRoutineForDay(routineId: String): Result + suspend fun registerRoutine(request: RoutineRegisterRequest): Result + suspend fun editRoutine(request: RoutineEditRequest): Result } diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/datasourceImpl/RoutineRemoteDataSourceImpl.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/datasourceImpl/RoutineRemoteDataSourceImpl.kt index 8d683be5..3b931ad6 100644 --- a/data/src/main/java/com/threegap/bitnagil/data/routine/datasourceImpl/RoutineRemoteDataSourceImpl.kt +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/datasourceImpl/RoutineRemoteDataSourceImpl.kt @@ -4,6 +4,8 @@ import com.threegap.bitnagil.data.common.safeApiCall import com.threegap.bitnagil.data.common.safeUnitApiCall import com.threegap.bitnagil.data.routine.datasource.RoutineRemoteDataSource import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest import com.threegap.bitnagil.data.routine.model.response.RoutineResponse import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse import com.threegap.bitnagil.data.routine.service.RoutineService @@ -36,4 +38,14 @@ class RoutineRemoteDataSourceImpl @Inject constructor( safeUnitApiCall { routineService.deleteRoutineForDay(routineId) } + + override suspend fun registerRoutine(request: RoutineRegisterRequest): Result = + safeUnitApiCall { + routineService.postRoutine(request) + } + + override suspend fun editRoutine(request: RoutineEditRequest): Result = + safeUnitApiCall { + routineService.patchRoutine(request) + } } diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineEditRequest.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineEditRequest.kt new file mode 100644 index 00000000..4b70681e --- /dev/null +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineEditRequest.kt @@ -0,0 +1,40 @@ +package com.threegap.bitnagil.data.routine.model.request + +import com.threegap.bitnagil.domain.routine.model.DayOfWeek +import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo +import com.threegap.bitnagil.domain.routine.model.RoutineUpdateType +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RoutineEditRequest( + @SerialName("routineId") + val routineId: String, + @SerialName("updateApplyDate") + val updateApplyDate: RoutineUpdateType, + @SerialName("routineName") + val routineName: String, + @SerialName("repeatDay") + val repeatDay: List, + @SerialName("routineStartDate") + val routineStartDate: String, + @SerialName("routineEndDate") + val routineEndDate: String, + @SerialName("executionTime") + val executionTime: String, + @SerialName("subRoutineName") + val subRoutineName: List, +) + +fun RoutineEditInfo.toDto(): RoutineEditRequest { + return RoutineEditRequest( + routineId = this.id, + updateApplyDate = this.updateType, + routineName = this.name, + repeatDay = this.repeatDay, + routineStartDate = this.startDate.toString(), + routineEndDate = this.endDate.toString(), + executionTime = this.startTime.toString(), + subRoutineName = this.subRoutines, + ) +} diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineRegisterRequest.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineRegisterRequest.kt new file mode 100644 index 00000000..2018ab6b --- /dev/null +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/model/request/RoutineRegisterRequest.kt @@ -0,0 +1,37 @@ +package com.threegap.bitnagil.data.routine.model.request + +import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory +import com.threegap.bitnagil.domain.routine.model.DayOfWeek +import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RoutineRegisterRequest( + @SerialName("routineName") + val routineName: String, + @SerialName("repeatDay") + val repeatDay: List, + @SerialName("routineStartDate") + val routineStartDate: String, + @SerialName("routineEndDate") + val routineEndDate: String, + @SerialName("executionTime") + val executionTime: String, + @SerialName("subRoutineName") + val subRoutineName: List, + @SerialName("recommendedRoutineType") + val recommendedRoutineType: RecommendCategory?, +) + +fun RoutineRegisterInfo.toDto(): RoutineRegisterRequest { + return RoutineRegisterRequest( + routineName = this.name, + repeatDay = this.repeatDay, + routineStartDate = this.startDate.toString(), + routineEndDate = this.endDate.toString(), + executionTime = this.startTime.toString(), + subRoutineName = this.subRoutines, + recommendedRoutineType = this.recommendedRoutineType, + ) +} diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/repositoryImpl/RoutineRepositoryImpl.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/repositoryImpl/RoutineRepositoryImpl.kt index 2c76fe7a..ec7a6e9d 100644 --- a/data/src/main/java/com/threegap/bitnagil/data/routine/repositoryImpl/RoutineRepositoryImpl.kt +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/repositoryImpl/RoutineRepositoryImpl.kt @@ -5,8 +5,14 @@ import com.threegap.bitnagil.data.routine.model.request.toDto import com.threegap.bitnagil.data.routine.model.response.toDomain import com.threegap.bitnagil.domain.routine.model.Routine import com.threegap.bitnagil.domain.routine.model.RoutineCompletionInfos +import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo +import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo import com.threegap.bitnagil.domain.routine.model.RoutineSchedule +import com.threegap.bitnagil.domain.routine.model.WriteRoutineEvent import com.threegap.bitnagil.domain.routine.repository.RoutineRepository +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.asSharedFlow import javax.inject.Inject class RoutineRepositoryImpl @Inject constructor( @@ -27,4 +33,25 @@ class RoutineRepositoryImpl @Inject constructor( override suspend fun deleteRoutineForDay(routineId: String): Result = routineRemoteDataSource.deleteRoutineForDay(routineId) + + override suspend fun registerRoutine(routineRegisterInfo: RoutineRegisterInfo): Result { + val request = routineRegisterInfo.toDto() + return routineRemoteDataSource.registerRoutine(request).also { + if (it.isSuccess) { + _writeRoutineEventFlow.emit(WriteRoutineEvent.AddRoutine) + } + } + } + + override suspend fun editRoutine(routineEditInfo: RoutineEditInfo): Result { + val request = routineEditInfo.toDto() + return routineRemoteDataSource.editRoutine(request).also { + if (it.isSuccess) { + _writeRoutineEventFlow.emit(WriteRoutineEvent.EditRoutine(routineEditInfo.id)) + } + } + } + + private val _writeRoutineEventFlow = MutableSharedFlow() + override suspend fun getWriteRoutineEventFlow(): Flow = _writeRoutineEventFlow.asSharedFlow() } diff --git a/data/src/main/java/com/threegap/bitnagil/data/routine/service/RoutineService.kt b/data/src/main/java/com/threegap/bitnagil/data/routine/service/RoutineService.kt index fc504e9b..df5bc9e8 100644 --- a/data/src/main/java/com/threegap/bitnagil/data/routine/service/RoutineService.kt +++ b/data/src/main/java/com/threegap/bitnagil/data/routine/service/RoutineService.kt @@ -1,12 +1,16 @@ package com.threegap.bitnagil.data.routine.service import com.threegap.bitnagil.data.routine.model.request.RoutineCompletionRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineEditRequest +import com.threegap.bitnagil.data.routine.model.request.RoutineRegisterRequest import com.threegap.bitnagil.data.routine.model.response.RoutineResponse import com.threegap.bitnagil.data.routine.model.response.RoutineScheduleResponse import com.threegap.bitnagil.network.model.BaseResponse import retrofit2.http.Body import retrofit2.http.DELETE import retrofit2.http.GET +import retrofit2.http.PATCH +import retrofit2.http.POST import retrofit2.http.PUT import retrofit2.http.Path import retrofit2.http.Query @@ -37,4 +41,14 @@ interface RoutineService { suspend fun deleteRoutineForDay( @Path("routineId") routineId: String, ): BaseResponse + + @POST("/api/v2/routines") + suspend fun postRoutine( + @Body routineRegisterRequest: RoutineRegisterRequest, + ): BaseResponse + + @PATCH("/api/v2/routines") + suspend fun patchRoutine( + @Body routineEditRequest: RoutineEditRequest, + ): BaseResponse } diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasource/WriteRoutineDataSource.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasource/WriteRoutineDataSource.kt deleted file mode 100644 index fb0b0c9a..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasource/WriteRoutineDataSource.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.datasource - -import com.threegap.bitnagil.data.writeroutine.model.request.EditRoutineRequest -import com.threegap.bitnagil.data.writeroutine.model.request.RegisterRoutineRequest - -interface WriteRoutineDataSource { - suspend fun registerRoutine(request: RegisterRoutineRequest): Result - suspend fun editRoutine(request: EditRoutineRequest): Result -} diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasourceImpl/WriteRoutineDataSourceImpl.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasourceImpl/WriteRoutineDataSourceImpl.kt deleted file mode 100644 index 2b7525da..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/datasourceImpl/WriteRoutineDataSourceImpl.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.datasourceImpl - -import com.threegap.bitnagil.data.common.safeUnitApiCall -import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource -import com.threegap.bitnagil.data.writeroutine.model.request.EditRoutineRequest -import com.threegap.bitnagil.data.writeroutine.model.request.RegisterRoutineRequest -import com.threegap.bitnagil.data.writeroutine.service.WriteRoutineService -import javax.inject.Inject - -class WriteRoutineDataSourceImpl @Inject constructor( - private val writeRoutineService: WriteRoutineService, -) : WriteRoutineDataSource { - override suspend fun registerRoutine(request: RegisterRoutineRequest): Result { - return safeUnitApiCall { - writeRoutineService.postRoutine(request) - } - } - - override suspend fun editRoutine(request: EditRoutineRequest): Result { - return safeUnitApiCall { - writeRoutineService.patchRoutine(request) - } - } -} diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/EditRoutineRequest.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/EditRoutineRequest.kt deleted file mode 100644 index a7d8fad7..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/EditRoutineRequest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.model.request - -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class EditRoutineRequest( - @SerialName("routineId") - val routineId: String, - @SerialName("updateApplyDate") - val updateApplyDate: RoutineUpdateType, - @SerialName("routineName") - val routineName: String, - @SerialName("repeatDay") - val repeatDay: List, - @SerialName("routineStartDate") - val routineStartDate: String, - @SerialName("routineEndDate") - val routineEndDate: String, - @SerialName("executionTime") - val executionTime: String, - @SerialName("subRoutineName") - val subRoutineName: List, -) diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/RegisterRoutineRequest.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/RegisterRoutineRequest.kt deleted file mode 100644 index 0c4a72c7..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/model/request/RegisterRoutineRequest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.model.request - -import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class RegisterRoutineRequest( - @SerialName("routineName") - val routineName: String, - @SerialName("repeatDay") - val repeatDay: List, - @SerialName("routineStartDate") - val routineStartDate: String, - @SerialName("routineEndDate") - val routineEndDate: String, - @SerialName("executionTime") - val executionTime: String, - @SerialName("subRoutineName") - val subRoutineName: List, - @SerialName("recommendedRoutineType") - val recommendedRoutineType: RecommendCategory?, -) diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/repositoryImpl/WriteRoutineRepositoryImpl.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/repositoryImpl/WriteRoutineRepositoryImpl.kt deleted file mode 100644 index 80e5dcbf..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/repositoryImpl/WriteRoutineRepositoryImpl.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.repositoryImpl - -import com.threegap.bitnagil.data.writeroutine.datasource.WriteRoutineDataSource -import com.threegap.bitnagil.data.writeroutine.model.request.EditRoutineRequest -import com.threegap.bitnagil.data.writeroutine.model.request.RegisterRoutineRequest -import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType -import com.threegap.bitnagil.domain.writeroutine.model.WriteRoutineEvent -import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.MutableSharedFlow -import kotlinx.coroutines.flow.asSharedFlow -import java.time.LocalDate -import java.time.LocalTime -import javax.inject.Inject - -class WriteRoutineRepositoryImpl @Inject constructor( - private val writeRoutineDataSource: WriteRoutineDataSource, -) : WriteRoutineRepository { - override suspend fun registerRoutine( - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - recommendedRoutineType: RecommendCategory?, - ): Result { - val request = RegisterRoutineRequest( - routineName = name, - repeatDay = repeatDay, - executionTime = startTime.toString(), - routineStartDate = startDate.toString(), - routineEndDate = endDate.toString(), - subRoutineName = subRoutines, - recommendedRoutineType = recommendedRoutineType, - ) - return writeRoutineDataSource.registerRoutine(request).also { - if (it.isSuccess) { - _writeRoutineEventFlow.emit(WriteRoutineEvent.AddRoutine) - } - } - } - - override suspend fun editRoutine( - routineId: String, - routineUpdateType: RoutineUpdateType, - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - ): Result { - val request = EditRoutineRequest( - routineId = routineId, - updateApplyDate = routineUpdateType, - routineName = name, - repeatDay = repeatDay, - executionTime = startTime.toString(), - routineStartDate = startDate.toString(), - routineEndDate = endDate.toString(), - subRoutineName = subRoutines, - ) - - return writeRoutineDataSource.editRoutine(request).also { - if (it.isSuccess) { - _writeRoutineEventFlow.emit(WriteRoutineEvent.EditRoutine(routineId)) - } - } - } - - private val _writeRoutineEventFlow = MutableSharedFlow() - override suspend fun getWriteRoutineEventFlow(): Flow = _writeRoutineEventFlow.asSharedFlow() -} diff --git a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/service/WriteRoutineService.kt b/data/src/main/java/com/threegap/bitnagil/data/writeroutine/service/WriteRoutineService.kt deleted file mode 100644 index 7aada97c..00000000 --- a/data/src/main/java/com/threegap/bitnagil/data/writeroutine/service/WriteRoutineService.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.threegap.bitnagil.data.writeroutine.service - -import com.threegap.bitnagil.data.writeroutine.model.request.EditRoutineRequest -import com.threegap.bitnagil.data.writeroutine.model.request.RegisterRoutineRequest -import com.threegap.bitnagil.network.model.BaseResponse -import retrofit2.http.Body -import retrofit2.http.PATCH -import retrofit2.http.POST - -interface WriteRoutineService { - @POST("/api/v2/routines") - suspend fun postRoutine( - @Body registerRoutineRequest: RegisterRoutineRequest, - ): BaseResponse - - @PATCH("/api/v2/routines") - suspend fun patchRoutine( - @Body editRoutineRequest: EditRoutineRequest, - ): BaseResponse -} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineEditInfo.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineEditInfo.kt new file mode 100644 index 00000000..efd968bf --- /dev/null +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineEditInfo.kt @@ -0,0 +1,15 @@ +package com.threegap.bitnagil.domain.routine.model + +import java.time.LocalDate +import java.time.LocalTime + +data class RoutineEditInfo( + val id: String, + val updateType: RoutineUpdateType, + val name: String, + val repeatDay: List, + val startTime: LocalTime, + val startDate: LocalDate, + val endDate: LocalDate, + val subRoutines: List, +) diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineRegisterInfo.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineRegisterInfo.kt new file mode 100644 index 00000000..314df202 --- /dev/null +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineRegisterInfo.kt @@ -0,0 +1,15 @@ +package com.threegap.bitnagil.domain.routine.model + +import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory +import java.time.LocalDate +import java.time.LocalTime + +data class RoutineRegisterInfo( + val name: String, + val repeatDay: List, + val startTime: LocalTime, + val startDate: LocalDate, + val endDate: LocalDate, + val subRoutines: List, + val recommendedRoutineType: RecommendCategory?, +) diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RoutineUpdateType.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineUpdateType.kt similarity index 65% rename from domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RoutineUpdateType.kt rename to domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineUpdateType.kt index ab2e8f8a..4b091650 100644 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RoutineUpdateType.kt +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/RoutineUpdateType.kt @@ -1,4 +1,4 @@ -package com.threegap.bitnagil.domain.writeroutine.model +package com.threegap.bitnagil.domain.routine.model import kotlinx.serialization.Serializable diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/SubRoutineDeletionInfo.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/SubRoutineDeletionInfo.kt deleted file mode 100644 index 24289e58..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/SubRoutineDeletionInfo.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.threegap.bitnagil.domain.routine.model - -data class SubRoutineDeletionInfo( - val routineCompletionId: Int?, - val subRoutineId: String, -) diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/WriteRoutineEvent.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/WriteRoutineEvent.kt similarity index 73% rename from domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/WriteRoutineEvent.kt rename to domain/src/main/java/com/threegap/bitnagil/domain/routine/model/WriteRoutineEvent.kt index 9078b3f2..6fd1ceaf 100644 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/WriteRoutineEvent.kt +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/model/WriteRoutineEvent.kt @@ -1,4 +1,4 @@ -package com.threegap.bitnagil.domain.writeroutine.model +package com.threegap.bitnagil.domain.routine.model sealed interface WriteRoutineEvent { data object AddRoutine : WriteRoutineEvent diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/repository/RoutineRepository.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/repository/RoutineRepository.kt index cc2625d3..e91b8287 100644 --- a/domain/src/main/java/com/threegap/bitnagil/domain/routine/repository/RoutineRepository.kt +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/repository/RoutineRepository.kt @@ -2,7 +2,11 @@ package com.threegap.bitnagil.domain.routine.repository import com.threegap.bitnagil.domain.routine.model.Routine import com.threegap.bitnagil.domain.routine.model.RoutineCompletionInfos +import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo +import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo import com.threegap.bitnagil.domain.routine.model.RoutineSchedule +import com.threegap.bitnagil.domain.routine.model.WriteRoutineEvent +import kotlinx.coroutines.flow.Flow interface RoutineRepository { suspend fun fetchWeeklyRoutines(startDate: String, endDate: String): Result @@ -10,4 +14,7 @@ interface RoutineRepository { suspend fun getRoutine(routineId: String): Result suspend fun deleteRoutine(routineId: String): Result suspend fun deleteRoutineForDay(routineId: String): Result + suspend fun registerRoutine(routineRegisterInfo: RoutineRegisterInfo): Result + suspend fun editRoutine(routineEditInfo: RoutineEditInfo): Result + suspend fun getWriteRoutineEventFlow(): Flow } diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/EditRoutineUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/EditRoutineUseCase.kt new file mode 100644 index 00000000..8c6d44bb --- /dev/null +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/EditRoutineUseCase.kt @@ -0,0 +1,37 @@ +package com.threegap.bitnagil.domain.routine.usecase + +import com.threegap.bitnagil.domain.routine.model.DayOfWeek +import com.threegap.bitnagil.domain.routine.model.RoutineEditInfo +import com.threegap.bitnagil.domain.routine.model.RoutineUpdateType +import com.threegap.bitnagil.domain.routine.repository.RoutineRepository +import java.time.LocalDate +import java.time.LocalTime +import javax.inject.Inject + +class EditRoutineUseCase @Inject constructor( + private val routineRepository: RoutineRepository, +) { + suspend operator fun invoke( + routineId: String, + routineUpdateType: RoutineUpdateType, + name: String, + repeatDay: List, + startTime: LocalTime, + startDate: LocalDate, + endDate: LocalDate, + subRoutines: List, + ): Result { + return routineRepository.editRoutine( + routineEditInfo = RoutineEditInfo( + id = routineId, + updateType = routineUpdateType, + name = name, + repeatDay = repeatDay, + startTime = startTime, + startDate = startDate, + endDate = endDate, + subRoutines = subRoutines, + ), + ) + } +} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/GetWriteRoutineEventFlowUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/GetWriteRoutineEventFlowUseCase.kt new file mode 100644 index 00000000..46ee1552 --- /dev/null +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/GetWriteRoutineEventFlowUseCase.kt @@ -0,0 +1,12 @@ +package com.threegap.bitnagil.domain.routine.usecase + +import com.threegap.bitnagil.domain.routine.model.WriteRoutineEvent +import com.threegap.bitnagil.domain.routine.repository.RoutineRepository +import kotlinx.coroutines.flow.Flow +import javax.inject.Inject + +class GetWriteRoutineEventFlowUseCase @Inject constructor( + private val routineRepository: RoutineRepository, +) { + suspend operator fun invoke(): Flow = routineRepository.getWriteRoutineEventFlow() +} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/RegisterRoutineUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/RegisterRoutineUseCase.kt new file mode 100644 index 00000000..6afda4a7 --- /dev/null +++ b/domain/src/main/java/com/threegap/bitnagil/domain/routine/usecase/RegisterRoutineUseCase.kt @@ -0,0 +1,35 @@ +package com.threegap.bitnagil.domain.routine.usecase + +import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory +import com.threegap.bitnagil.domain.routine.model.DayOfWeek +import com.threegap.bitnagil.domain.routine.model.RoutineRegisterInfo +import com.threegap.bitnagil.domain.routine.repository.RoutineRepository +import java.time.LocalDate +import java.time.LocalTime +import javax.inject.Inject + +class RegisterRoutineUseCase @Inject constructor( + private val routineRepository: RoutineRepository, +) { + suspend operator fun invoke( + name: String, + repeatDay: List, + startTime: LocalTime, + startDate: LocalDate, + endDate: LocalDate, + subRoutines: List, + recommendedRoutineType: RecommendCategory?, + ): Result { + return routineRepository.registerRoutine( + routineRegisterInfo = RoutineRegisterInfo( + name = name, + repeatDay = repeatDay, + startTime = startTime, + startDate = startDate, + endDate = endDate, + subRoutines = subRoutines, + recommendedRoutineType = recommendedRoutineType, + ), + ) + } +} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RepeatDay.kt b/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RepeatDay.kt deleted file mode 100644 index 794c333d..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/model/RepeatDay.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.threegap.bitnagil.domain.writeroutine.model - -import kotlinx.serialization.Serializable - -@Serializable -enum class RepeatDay { - MONDAY, - TUESDAY, - WEDNESDAY, - THURSDAY, - FRIDAY, - SATURDAY, - SUNDAY, - ; -} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/repository/WriteRoutineRepository.kt b/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/repository/WriteRoutineRepository.kt deleted file mode 100644 index 3ff5059f..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/repository/WriteRoutineRepository.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.threegap.bitnagil.domain.writeroutine.repository - -import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType -import com.threegap.bitnagil.domain.writeroutine.model.WriteRoutineEvent -import kotlinx.coroutines.flow.Flow -import java.time.LocalDate -import java.time.LocalTime - -interface WriteRoutineRepository { - suspend fun registerRoutine( - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - recommendedRoutineType: RecommendCategory?, - ): Result - - suspend fun editRoutine( - routineId: String, - routineUpdateType: RoutineUpdateType, - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - ): Result - - suspend fun getWriteRoutineEventFlow(): Flow -} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/EditRoutineUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/EditRoutineUseCase.kt deleted file mode 100644 index 377f2cde..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/EditRoutineUseCase.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.threegap.bitnagil.domain.writeroutine.usecase - -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType -import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository -import java.time.LocalDate -import java.time.LocalTime -import javax.inject.Inject - -class EditRoutineUseCase @Inject constructor( - private val writeRoutineRepository: WriteRoutineRepository, -) { - suspend operator fun invoke( - routineId: String, - routineUpdateType: RoutineUpdateType, - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - ): Result { - return writeRoutineRepository.editRoutine( - routineId = routineId, - routineUpdateType = routineUpdateType, - name = name, - repeatDay = repeatDay, - startTime = startTime, - startDate = startDate, - endDate = endDate, - subRoutines = subRoutines, - ) - } -} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/GetWriteRoutineEventFlowUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/GetWriteRoutineEventFlowUseCase.kt deleted file mode 100644 index b385e1b4..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/GetWriteRoutineEventFlowUseCase.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.threegap.bitnagil.domain.writeroutine.usecase - -import com.threegap.bitnagil.domain.writeroutine.model.WriteRoutineEvent -import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository -import kotlinx.coroutines.flow.Flow -import javax.inject.Inject - -class GetWriteRoutineEventFlowUseCase @Inject constructor( - private val repository: WriteRoutineRepository, -) { - suspend operator fun invoke(): Flow = repository.getWriteRoutineEventFlow() -} diff --git a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/RegisterRoutineUseCase.kt b/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/RegisterRoutineUseCase.kt deleted file mode 100644 index ae9ed932..00000000 --- a/domain/src/main/java/com/threegap/bitnagil/domain/writeroutine/usecase/RegisterRoutineUseCase.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.threegap.bitnagil.domain.writeroutine.usecase - -import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.repository.WriteRoutineRepository -import java.time.LocalDate -import java.time.LocalTime -import javax.inject.Inject - -class RegisterRoutineUseCase @Inject constructor( - private val writeRoutineRepository: WriteRoutineRepository, -) { - suspend operator fun invoke( - name: String, - repeatDay: List, - startTime: LocalTime, - startDate: LocalDate, - endDate: LocalDate, - subRoutines: List, - recommendedRoutineType: RecommendCategory?, - ): Result { - return writeRoutineRepository.registerRoutine( - name = name, - repeatDay = repeatDay, - startTime = startTime, - startDate = startDate, - endDate = endDate, - subRoutines = subRoutines, - recommendedRoutineType = recommendedRoutineType, - ) - } -} diff --git a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/home/HomeViewModel.kt b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/home/HomeViewModel.kt index c93e4ec1..810c9a1f 100644 --- a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/home/HomeViewModel.kt +++ b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/home/HomeViewModel.kt @@ -8,10 +8,10 @@ import com.threegap.bitnagil.domain.onboarding.usecase.GetOnBoardingRecommendRou import com.threegap.bitnagil.domain.routine.model.RoutineCompletionInfo import com.threegap.bitnagil.domain.routine.model.RoutineCompletionInfos import com.threegap.bitnagil.domain.routine.usecase.FetchWeeklyRoutinesUseCase +import com.threegap.bitnagil.domain.routine.usecase.GetWriteRoutineEventFlowUseCase import com.threegap.bitnagil.domain.routine.usecase.RoutineCompletionUseCase import com.threegap.bitnagil.domain.routine.usecase.ToggleRoutineUseCase import com.threegap.bitnagil.domain.user.usecase.FetchUserProfileUseCase -import com.threegap.bitnagil.domain.writeroutine.usecase.GetWriteRoutineEventFlowUseCase import com.threegap.bitnagil.presentation.screen.home.contract.HomeSideEffect import com.threegap.bitnagil.presentation.screen.home.contract.HomeState import com.threegap.bitnagil.presentation.screen.home.model.ToggleStrategy diff --git a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinelist/RoutineListViewModel.kt b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinelist/RoutineListViewModel.kt index aa9707bb..bf90fd1b 100644 --- a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinelist/RoutineListViewModel.kt +++ b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinelist/RoutineListViewModel.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.viewModelScope import com.threegap.bitnagil.domain.routine.usecase.DeleteRoutineForDayUseCase import com.threegap.bitnagil.domain.routine.usecase.DeleteRoutineUseCase import com.threegap.bitnagil.domain.routine.usecase.FetchWeeklyRoutinesUseCase -import com.threegap.bitnagil.domain.writeroutine.usecase.GetWriteRoutineEventFlowUseCase +import com.threegap.bitnagil.domain.routine.usecase.GetWriteRoutineEventFlowUseCase import com.threegap.bitnagil.presentation.screen.home.util.getCurrentWeekDays import com.threegap.bitnagil.presentation.screen.routinelist.contract.RoutineListSideEffect import com.threegap.bitnagil.presentation.screen.routinelist.contract.RoutineListState diff --git a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWrite.kt b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteScreen.kt similarity index 100% rename from presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWrite.kt rename to presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteScreen.kt diff --git a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteViewModel.kt b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteViewModel.kt index e4f3b61d..f356f2b0 100644 --- a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteViewModel.kt +++ b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/RoutineWriteViewModel.kt @@ -3,11 +3,11 @@ package com.threegap.bitnagil.presentation.screen.routinewrite import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.threegap.bitnagil.domain.recommendroutine.usecase.GetRecommendRoutineUseCase +import com.threegap.bitnagil.domain.routine.model.DayOfWeek +import com.threegap.bitnagil.domain.routine.model.RoutineUpdateType +import com.threegap.bitnagil.domain.routine.usecase.EditRoutineUseCase import com.threegap.bitnagil.domain.routine.usecase.GetRoutineUseCase -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay -import com.threegap.bitnagil.domain.writeroutine.model.RoutineUpdateType -import com.threegap.bitnagil.domain.writeroutine.usecase.EditRoutineUseCase -import com.threegap.bitnagil.domain.writeroutine.usecase.RegisterRoutineUseCase +import com.threegap.bitnagil.domain.routine.usecase.RegisterRoutineUseCase import com.threegap.bitnagil.presentation.screen.routinewrite.contract.RoutineWriteSideEffect import com.threegap.bitnagil.presentation.screen.routinewrite.contract.RoutineWriteState import com.threegap.bitnagil.presentation.screen.routinewrite.model.Date @@ -343,13 +343,13 @@ class RoutineWriteViewModel @AssistedInject constructor( val repeatDay = when (currentState.repeatType) { RepeatType.DAILY -> listOf( - RepeatDay.MONDAY, - RepeatDay.TUESDAY, - RepeatDay.WEDNESDAY, - RepeatDay.THURSDAY, - RepeatDay.FRIDAY, - RepeatDay.SATURDAY, - RepeatDay.SUNDAY, + DayOfWeek.MONDAY, + DayOfWeek.TUESDAY, + DayOfWeek.WEDNESDAY, + DayOfWeek.THURSDAY, + DayOfWeek.FRIDAY, + DayOfWeek.SATURDAY, + DayOfWeek.SUNDAY, ) RepeatType.DAY -> diff --git a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/model/Day.kt b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/model/Day.kt index ec519d3b..e4a69da4 100644 --- a/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/model/Day.kt +++ b/presentation/src/main/java/com/threegap/bitnagil/presentation/screen/routinewrite/model/Day.kt @@ -1,7 +1,6 @@ package com.threegap.bitnagil.presentation.screen.routinewrite.model import com.threegap.bitnagil.domain.routine.model.DayOfWeek -import com.threegap.bitnagil.domain.writeroutine.model.RepeatDay enum class Day(val text: String) { MON(text = "월"), @@ -13,15 +12,15 @@ enum class Day(val text: String) { SUN(text = "일"), ; - fun toRepeatDay(): RepeatDay { + fun toRepeatDay(): DayOfWeek { return when (this) { - MON -> RepeatDay.MONDAY - TUE -> RepeatDay.TUESDAY - WED -> RepeatDay.WEDNESDAY - THU -> RepeatDay.THURSDAY - FRI -> RepeatDay.FRIDAY - SAT -> RepeatDay.SATURDAY - SUN -> RepeatDay.SUNDAY + MON -> DayOfWeek.MONDAY + TUE -> DayOfWeek.TUESDAY + WED -> DayOfWeek.WEDNESDAY + THU -> DayOfWeek.THURSDAY + FRI -> DayOfWeek.FRIDAY + SAT -> DayOfWeek.SATURDAY + SUN -> DayOfWeek.SUNDAY } }