fix: 빌드 에러 수정 - 중복 코드 제거
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -16,19 +16,6 @@ import com.hotdeal.alarm.domain.model.HotDeal
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
data class HotDealEntity(
|
data class HotDealEntity(
|
||||||
@PrimaryKey
|
|
||||||
val id: String,
|
|
||||||
val siteName: String,
|
|
||||||
val boardName: String,
|
|
||||||
val title: String,
|
|
||||||
val url: String,
|
|
||||||
val mallUrl: String?,
|
|
||||||
val createdAt: Long,
|
|
||||||
val isNotified: Boolean = false,
|
|
||||||
val isKeywordMatch: Boolean = false,
|
|
||||||
val isFavorite: Boolean = false, // 즐겨찾기 여부
|
|
||||||
val isPopular: Boolean = false // 인기/핫 게시물 여부
|
|
||||||
) {
|
|
||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
val id: String,
|
val id: String,
|
||||||
val siteName: String,
|
val siteName: String,
|
||||||
@@ -36,29 +23,16 @@ data class HotDealEntity(
|
|||||||
val title: String,
|
val title: String,
|
||||||
val url: String,
|
val url: String,
|
||||||
val mallUrl: String?,
|
val mallUrl: String?,
|
||||||
val createdAt: Long,
|
val createdAt: Long,
|
||||||
val isNotified: Boolean = false,
|
val isNotified: Boolean = false,
|
||||||
val isKeywordMatch: Boolean = false,
|
val isKeywordMatch: Boolean = false,
|
||||||
val isFavorite: Boolean = false // 즐겨찾기 여부
|
val isFavorite: Boolean = false, // 즐겨찾기 여부
|
||||||
|
val isPopular: Boolean = false // 인기/핫 게시물 여부
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* Domain 모델로 변환
|
* Domain 모델로 변환
|
||||||
*/
|
*/
|
||||||
fun toDomain(): HotDeal {
|
fun toDomain(): HotDeal {
|
||||||
return HotDeal(
|
|
||||||
id = id,
|
|
||||||
siteName = siteName,
|
|
||||||
boardName = boardName,
|
|
||||||
title = title,
|
|
||||||
url = url,
|
|
||||||
mallUrl = mallUrl,
|
|
||||||
createdAt = createdAt,
|
|
||||||
isNotified = isNotified,
|
|
||||||
isKeywordMatch = isKeywordMatch,
|
|
||||||
isFavorite = isFavorite,
|
|
||||||
isPopular = isPopular
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return HotDeal(
|
return HotDeal(
|
||||||
id = id,
|
id = id,
|
||||||
siteName = siteName,
|
siteName = siteName,
|
||||||
@@ -67,9 +41,10 @@ data class HotDealEntity(
|
|||||||
url = url,
|
url = url,
|
||||||
mallUrl = mallUrl,
|
mallUrl = mallUrl,
|
||||||
createdAt = createdAt,
|
createdAt = createdAt,
|
||||||
isNotified = isNotified,
|
isNotified = isNotified,
|
||||||
isKeywordMatch = isKeywordMatch,
|
isKeywordMatch = isKeywordMatch,
|
||||||
isFavorite = isFavorite
|
isFavorite = isFavorite,
|
||||||
|
isPopular = isPopular
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,21 +52,7 @@ data class HotDealEntity(
|
|||||||
/**
|
/**
|
||||||
* Domain 모델에서 Entity 생성
|
* Domain 모델에서 Entity 생성
|
||||||
*/
|
*/
|
||||||
fun fromDomain(domain: HotDeal): HotDealEntity {
|
fun fromDomain(domain: HotDeal): HotDealEntity {
|
||||||
return HotDealEntity(
|
|
||||||
id = domain.id,
|
|
||||||
siteName = domain.siteName,
|
|
||||||
boardName = domain.boardName,
|
|
||||||
title = domain.title,
|
|
||||||
url = domain.url,
|
|
||||||
mallUrl = domain.mallUrl,
|
|
||||||
createdAt = domain.createdAt,
|
|
||||||
isNotified = domain.isNotified,
|
|
||||||
isKeywordMatch = domain.isKeywordMatch,
|
|
||||||
isFavorite = domain.isFavorite,
|
|
||||||
isPopular = domain.isPopular
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return HotDealEntity(
|
return HotDealEntity(
|
||||||
id = domain.id,
|
id = domain.id,
|
||||||
siteName = domain.siteName,
|
siteName = domain.siteName,
|
||||||
@@ -100,9 +61,10 @@ data class HotDealEntity(
|
|||||||
url = domain.url,
|
url = domain.url,
|
||||||
mallUrl = domain.mallUrl,
|
mallUrl = domain.mallUrl,
|
||||||
createdAt = domain.createdAt,
|
createdAt = domain.createdAt,
|
||||||
isNotified = domain.isNotified,
|
isNotified = domain.isNotified,
|
||||||
isKeywordMatch = domain.isKeywordMatch,
|
isKeywordMatch = domain.isKeywordMatch,
|
||||||
isFavorite = domain.isFavorite
|
isFavorite = domain.isFavorite,
|
||||||
|
isPopular = domain.isPopular
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import javax.inject.Singleton
|
|||||||
@Module
|
@Module
|
||||||
@InstallIn(SingletonComponent::class)
|
@InstallIn(SingletonComponent::class)
|
||||||
object DatabaseModule {
|
object DatabaseModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideDatabase(
|
fun provideDatabase(
|
||||||
@@ -31,35 +31,31 @@ object DatabaseModule {
|
|||||||
AppDatabase::class.java,
|
AppDatabase::class.java,
|
||||||
AppDatabase.DATABASE_NAME
|
AppDatabase.DATABASE_NAME
|
||||||
)
|
)
|
||||||
.addMigrations(
|
.addMigrations(
|
||||||
AppDatabase.MIGRATION_1_2,
|
AppDatabase.MIGRATION_1_2,
|
||||||
AppDatabase.MIGRATION_2_3,
|
AppDatabase.MIGRATION_2_3,
|
||||||
AppDatabase.MIGRATION_3_4,
|
AppDatabase.MIGRATION_3_4,
|
||||||
AppDatabase.MIGRATION_4_5
|
AppDatabase.MIGRATION_4_5
|
||||||
)
|
)
|
||||||
AppDatabase.MIGRATION_1_2,
|
|
||||||
AppDatabase.MIGRATION_2_3,
|
|
||||||
AppDatabase.MIGRATION_3_4
|
|
||||||
)
|
|
||||||
.fallbackToDestructiveMigration()
|
.fallbackToDestructiveMigration()
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
fun provideHotDealDao(database: AppDatabase): HotDealDao {
|
fun provideHotDealDao(database: AppDatabase): HotDealDao {
|
||||||
return database.hotDealDao()
|
return database.hotDealDao()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
fun provideSiteConfigDao(database: AppDatabase): SiteConfigDao {
|
fun provideSiteConfigDao(database: AppDatabase): SiteConfigDao {
|
||||||
return database.siteConfigDao()
|
return database.siteConfigDao()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
fun provideKeywordDao(database: AppDatabase): KeywordDao {
|
fun provideKeywordDao(database: AppDatabase): KeywordDao {
|
||||||
return database.keywordDao()
|
return database.keywordDao()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideAppSettings(
|
fun provideAppSettings(
|
||||||
|
|||||||
@@ -4,35 +4,24 @@ package com.hotdeal.alarm.domain.model
|
|||||||
* 핫딜 도메인 모델
|
* 핫딜 도메인 모델
|
||||||
*/
|
*/
|
||||||
data class HotDeal(
|
data class HotDeal(
|
||||||
val id: String, // siteName + "_" + postId
|
val id: String, // siteName + "_" + postId
|
||||||
val siteName: String, // ppomppu, clien, ruriweb, coolenjoy, quasarzone
|
val siteName: String, // ppomppu, clien, ruriweb, coolenjoy, quasarzone
|
||||||
val boardName: String, // ppomppu, ppomppu4, allsell, jirum, etc.
|
val boardName: String, // ppomppu, ppomppu4, allsell, jirum, etc.
|
||||||
val title: String, // 게시글 제목
|
val title: String, // 게시글 제목
|
||||||
val url: String, // 게시글 URL
|
val url: String, // 게시글 URL
|
||||||
val mallUrl: String? = null, // 쇼핑몰 URL (추출된 경우)
|
|
||||||
val createdAt: Long, // 수집 시간 (timestamp)
|
|
||||||
val isNotified: Boolean = false,
|
|
||||||
val isKeywordMatch: Boolean = false,
|
|
||||||
val isFavorite: Boolean = false, // 즐겨찾기 여부
|
|
||||||
val isPopular: Boolean = false // 인기/핫 게시물 여부
|
|
||||||
) {
|
|
||||||
val id: String, // siteName + "_" + postId
|
|
||||||
val siteName: String, // ppomppu, clien, ruriweb, coolenjoy, quasarzone
|
|
||||||
val boardName: String, // ppomppu, ppomppu4, allsell, jirum, etc.
|
|
||||||
val title: String, // 게시글 제목
|
|
||||||
val url: String, // 게시글 URL
|
|
||||||
val mallUrl: String? = null, // 쇼핑몰 URL (추출된 경우)
|
val mallUrl: String? = null, // 쇼핑몰 URL (추출된 경우)
|
||||||
val createdAt: Long, // 수집 시간 (timestamp)
|
val createdAt: Long, // 수집 시간 (timestamp)
|
||||||
val isNotified: Boolean = false,
|
val isNotified: Boolean = false,
|
||||||
val isKeywordMatch: Boolean = false,
|
val isKeywordMatch: Boolean = false,
|
||||||
val isFavorite: Boolean = false // 즐겨찾기 여부
|
val isFavorite: Boolean = false, // 즐겨찾기 여부
|
||||||
|
val isPopular: Boolean = false // 인기/핫 게시물 여부
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* 사이트 타입 반환
|
* 사이트 타입 반환
|
||||||
*/
|
*/
|
||||||
val siteType: SiteType?
|
val siteType: SiteType?
|
||||||
get() = SiteType.fromName(siteName)
|
get() = SiteType.fromName(siteName)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 게시판 표시 이름 반환 (ppomppu8 → 알리뽐뿌)
|
* 게시판 표시 이름 반환 (ppomppu8 → 알리뽐뿌)
|
||||||
*/
|
*/
|
||||||
@@ -41,7 +30,7 @@ data class HotDeal(
|
|||||||
val site = siteType ?: return boardName
|
val site = siteType ?: return boardName
|
||||||
return site.boards.find { it.id == boardName }?.displayName ?: boardName
|
return site.boards.find { it.id == boardName }?.displayName ?: boardName
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 사이트 표시 이름 + 게시판 표시 이름 (예: 뽐뿌 - 알리뽐뿌)
|
* 사이트 표시 이름 + 게시판 표시 이름 (예: 뽐뿌 - 알리뽐뿌)
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user