refactor(db): ObjectBox 제거 및 Room으로 마이그레이션

- 최상위/app Gradle에서 ObjectBox 플러그인 제거
- PlaybackTracking을 Room Entity/DAO/Database로 전환
- Repository를 Room 기반으로 수정 및 Koin DI 주입 변경
This commit is contained in:
2025-10-22 16:25:32 +09:00
parent bc581d763b
commit 9b825ee244
8 changed files with 81 additions and 44 deletions

View File

@@ -15,6 +15,8 @@ import kr.co.vividnext.sodalive.audio_content.comment.AudioContentCommentListVie
import kr.co.vividnext.sodalive.audio_content.comment.AudioContentCommentReplyViewModel
import kr.co.vividnext.sodalive.audio_content.comment.AudioContentCommentRepository
import kr.co.vividnext.sodalive.audio_content.curation.AudioContentCurationViewModel
import kr.co.vividnext.sodalive.audio_content.db.PlaybackTrackingDao
import kr.co.vividnext.sodalive.audio_content.db.PlaybackTrackingDatabase
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailViewModel
import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBannerViewModel
import kr.co.vividnext.sodalive.audio_content.main.curation.AudioContentMainCurationViewModel
@@ -67,23 +69,24 @@ import kr.co.vividnext.sodalive.audition.role.AuditionRoleDetailViewModel
import kr.co.vividnext.sodalive.chat.character.CharacterApi
import kr.co.vividnext.sodalive.chat.character.CharacterTabRepository
import kr.co.vividnext.sodalive.chat.character.CharacterTabViewModel
import kr.co.vividnext.sodalive.chat.character.newcharacters.NewCharactersAllViewModel
import kr.co.vividnext.sodalive.chat.character.newcharacters.NewCharactersRepository
import kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentApi
import kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentListViewModel
import kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentReplyViewModel
import kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentRepository
import kr.co.vividnext.sodalive.chat.character.detail.detail.CharacterDetailRepository
import kr.co.vividnext.sodalive.chat.character.detail.detail.CharacterDetailViewModel
import kr.co.vividnext.sodalive.chat.character.detail.gallery.CharacterGalleryRepository
import kr.co.vividnext.sodalive.chat.character.detail.gallery.CharacterGalleryViewModel
import kr.co.vividnext.sodalive.chat.character.newcharacters.NewCharactersAllViewModel
import kr.co.vividnext.sodalive.chat.character.newcharacters.NewCharactersRepository
import kr.co.vividnext.sodalive.chat.original.OriginalWorkApi
import kr.co.vividnext.sodalive.chat.original.OriginalWorkRepository
import kr.co.vividnext.sodalive.chat.original.OriginalWorkViewModel
import kr.co.vividnext.sodalive.chat.talk.TalkApi
import kr.co.vividnext.sodalive.chat.talk.TalkTabRepository
import kr.co.vividnext.sodalive.chat.talk.TalkTabViewModel
import kr.co.vividnext.sodalive.chat.talk.room.chatTalkRoomModule
import kr.co.vividnext.sodalive.chat.original.OriginalWorkApi
import kr.co.vividnext.sodalive.chat.original.OriginalWorkRepository
import kr.co.vividnext.sodalive.chat.original.OriginalWorkViewModel
import kr.co.vividnext.sodalive.common.ApiBuilder
import kr.co.vividnext.sodalive.common.ObjectBox
import kr.co.vividnext.sodalive.explorer.ExplorerApi
import kr.co.vividnext.sodalive.explorer.ExplorerRepository
import kr.co.vividnext.sodalive.explorer.ExplorerViewModel
@@ -204,7 +207,8 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
private val otherModule = module {
single { GsonBuilder().create() }
single { ObjectBox(get()) }
single { PlaybackTrackingDatabase.getDatabase(get()) }
single<PlaybackTrackingDao> { get<PlaybackTrackingDatabase>().playbackTrackingDao() }
}
private val networkModule = module {
@@ -368,8 +372,8 @@ class AppDI(private val context: Context, isDebugMode: Boolean) {
viewModel { CharacterDetailViewModel(get()) }
viewModel { CharacterGalleryViewModel(get()) }
viewModel { TalkTabViewModel(get()) }
viewModel { kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentListViewModel(get()) }
viewModel { kr.co.vividnext.sodalive.chat.character.comment.CharacterCommentReplyViewModel(get()) }
viewModel { CharacterCommentListViewModel(get()) }
viewModel { CharacterCommentReplyViewModel(get()) }
viewModel { NewCharactersAllViewModel(get()) }
viewModel { OriginalWorkViewModel(get()) }
viewModel { kr.co.vividnext.sodalive.chat.original.detail.OriginalWorkDetailViewModel(get()) }