package com.streamflixreborn.streamflix.database.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Transaction import com.streamflixreborn.streamflix.models.Season import kotlinx.coroutines.flow.Flow @Dao interface SeasonDao { @Query("SELECT * FROM seasons") fun getAllForBackup(): List @Query("SELECT * FROM seasons WHERE id = :id") fun getById(id: String): Season? @Query("SELECT * FROM seasons WHERE id IN (:ids)") fun getByIds(ids: List): List @Query("SELECT * FROM seasons WHERE id = :id") fun getByIdAsFlow(id: String): Flow @Query("SELECT * FROM seasons WHERE tvShow = :tvShowId") fun getByTvShowIdAsFlow(tvShowId: String): Flow> @Query("SELECT * FROM seasons WHERE tvShow = :tvShowId ORDER BY number") fun getByTvShowId(tvShowId: String): List @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(season: Season) @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertAll(seasons: List) @Query("DELETE FROM seasons") fun deleteAll() @Transaction fun saveAll(seasons: List) { // La logica di "save" per le stagioni รจ meno critica di Movie/TvShow, usiamo REPLACE // per salvare tutte le stagioni di un provider in blocco. insertAll(seasons) } }