package id.iiyh.inatrading.feature.favorite.domain

data class FavoriteGroupSummary(
    val id: String,
    val name: String,
    val isDefault: Boolean,
    val itemCount: Int,
)

data class FavoriteGroupProduct(
    val id: String,
    val productId: String,
    val productName: String,
    val productDescription: String?,
    val productImage: String?,
    val sellerName: String?,
)

interface FavoriteRepository {
    suspend fun getFavoriteGroups(): Result<List<FavoriteGroupSummary>>
    suspend fun getFavoriteGroupItems(favoriteId: String): Result<List<FavoriteGroupProduct>>
    suspend fun createFavoriteGroup(name: String): Result<Unit>
    suspend fun updateFavoriteGroup(favoriteId: String, name: String): Result<Unit>
    suspend fun deleteFavoriteGroup(favoriteId: String): Result<Unit>
    suspend fun addProductToFavorite(favoriteId: String, productId: String): Result<Unit>
    suspend fun removeProductFromFavorite(productId: String): Result<Unit>
}
