package com.example.livingai.domain.repository.business

import androidx.paging.PagingData
import com.example.livingai.domain.model.AnimalDetails
import com.example.livingai.domain.model.AnimalProfile
import com.example.livingai.domain.model.AnimalRating
import kotlinx.coroutines.flow.Flow

interface DataSource {
    fun getAnimalProfiles(): Flow<PagingData<AnimalProfile>>
    fun getAnimalDetails(animalId: String): Flow<AnimalDetails?>
    fun getAnimalRatings(animalId: String): Flow<AnimalRating?>
    
    suspend fun setAnimalProfile(animalProfile: AnimalProfile)
    suspend fun setAnimalDetails(animalDetails: AnimalDetails)
    suspend fun setAnimalRatings(animalRating: AnimalRating)
    suspend fun deleteAnimalProfile(animalId: String)
}
