diff --git a/app/src/main/java/com/umc/phrase/domain/model/User.kt b/app/src/main/java/com/umc/phrase/domain/model/User.kt index fa16db4..a5b49ee 100644 --- a/app/src/main/java/com/umc/phrase/domain/model/User.kt +++ b/app/src/main/java/com/umc/phrase/domain/model/User.kt @@ -1,5 +1,15 @@ package com.umc.phrase.domain.model data class User ( - val name: String, + val id: Long, + val nickname: String, + val accountId: String, + val profileImgUrl: String? +) + +data class UserDetail( + val user: User, + val followers: Long, + val followings: Long, + val comment: String? ) \ No newline at end of file diff --git a/app/src/main/java/com/umc/phrase/domain/repository/UserRepository.kt b/app/src/main/java/com/umc/phrase/domain/repository/UserRepository.kt index 328e8a7..decf7ad 100644 --- a/app/src/main/java/com/umc/phrase/domain/repository/UserRepository.kt +++ b/app/src/main/java/com/umc/phrase/domain/repository/UserRepository.kt @@ -1,4 +1,12 @@ package com.umc.phrase.domain.repository +import com.umc.phrase.domain.DataResource +import com.umc.phrase.domain.model.User +import kotlinx.coroutines.flow.Flow + interface UserRepository { + fun createUser(user: User): Flow> + fun deleteUser(id: Long): Flow> + fun getUser(id: Long) : Flow> + fun updateUser(user: User): Flow> } \ No newline at end of file diff --git a/app/src/main/java/com/umc/phrase/domain/usecase/user/CreateUserUseCase.kt b/app/src/main/java/com/umc/phrase/domain/usecase/user/CreateUserUseCase.kt new file mode 100644 index 0000000..e8075e8 --- /dev/null +++ b/app/src/main/java/com/umc/phrase/domain/usecase/user/CreateUserUseCase.kt @@ -0,0 +1,13 @@ +package com.umc.phrase.domain.usecase.user + +import com.umc.phrase.domain.DataResource +import com.umc.phrase.domain.model.User +import com.umc.phrase.domain.repository.UserRepository +import kotlinx.coroutines.flow.Flow +import javax.inject.Inject + +class CreateUserUseCase @Inject constructor( + private val userRepository: UserRepository +){ + operator fun invoke(user: User): Flow> = userRepository.createUser(user) +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/phrase/domain/usecase/user/DeleteUserUseCase.kt b/app/src/main/java/com/umc/phrase/domain/usecase/user/DeleteUserUseCase.kt new file mode 100644 index 0000000..578f8a2 --- /dev/null +++ b/app/src/main/java/com/umc/phrase/domain/usecase/user/DeleteUserUseCase.kt @@ -0,0 +1,12 @@ +package com.umc.phrase.domain.usecase.user + +import com.umc.phrase.domain.DataResource +import com.umc.phrase.domain.repository.UserRepository +import kotlinx.coroutines.flow.Flow +import javax.inject.Inject + +class DeleteUserUseCase @Inject constructor( + private val userRepository: UserRepository +){ + operator fun invoke(id: Long): Flow> = userRepository.deleteUser(id) +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/phrase/domain/usecase/user/GetUserUseCase.kt b/app/src/main/java/com/umc/phrase/domain/usecase/user/GetUserUseCase.kt index 91c55c3..9f8d014 100644 --- a/app/src/main/java/com/umc/phrase/domain/usecase/user/GetUserUseCase.kt +++ b/app/src/main/java/com/umc/phrase/domain/usecase/user/GetUserUseCase.kt @@ -1,4 +1,13 @@ package com.umc.phrase.domain.usecase.user -class GetUserUseCase { +import com.umc.phrase.domain.DataResource +import com.umc.phrase.domain.model.User +import com.umc.phrase.domain.repository.UserRepository +import kotlinx.coroutines.flow.Flow +import javax.inject.Inject + +class GetUserUseCase @Inject constructor( + private val userRepository: UserRepository +){ + operator fun invoke(id: Long): Flow> = userRepository.getUser(id) } \ No newline at end of file diff --git a/app/src/main/java/com/umc/phrase/domain/usecase/user/UpdateUserUseCase.kt b/app/src/main/java/com/umc/phrase/domain/usecase/user/UpdateUserUseCase.kt new file mode 100644 index 0000000..254072a --- /dev/null +++ b/app/src/main/java/com/umc/phrase/domain/usecase/user/UpdateUserUseCase.kt @@ -0,0 +1,13 @@ +package com.umc.phrase.domain.usecase.user + +import com.umc.phrase.domain.DataResource +import com.umc.phrase.domain.model.User +import com.umc.phrase.domain.repository.UserRepository +import kotlinx.coroutines.flow.Flow +import javax.inject.Inject + +class UpdateUserUseCase @Inject constructor( + private val userRepository: UserRepository +){ + operator fun invoke(user: User): Flow> = userRepository.updateUser(user) +} \ No newline at end of file