Add Favouite, Dao and database

This commit is contained in:
Joren 2024-04-29 22:04:12 +02:00
parent b5573783b9
commit 6abf4100f2
Signed by untrusted user who does not match committer: Joren
GPG Key ID: 280E33DFBC0F1B55
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package com.ti.mobpo.data
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.ti.mobpo.model.Sprites
import com.ti.mobpo.model.Type
@Entity(tableName = "favourites")
data class Favourite(
@PrimaryKey val id: Int,
val name: String,
val types: List<Type>,
val sprites: Sprites
)

View File

@ -0,0 +1,19 @@
package com.ti.mobpo.data
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
@Dao
interface FavouriteDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(favourite: Favourite)
@Delete
suspend fun delete(favourite: Favourite)
@Query("SELECT id FROM favourites")
suspend fun getAllFavoriteIds(): List<Int>
}

View File

@ -0,0 +1,23 @@
package com.ti.mobpo.data
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
@Database(entities = [Favourite::class], version = 1, exportSchema = false)
abstract class PokemonDatabase : RoomDatabase() {
abstract fun FavouriteDao(): FavouriteDao
companion object {
@Volatile
private var Instance: PokemonDatabase? = null
fun getDatabase(context: Context): PokemonDatabase {
return Instance ?: synchronized(this) {
Room.databaseBuilder(context, PokemonDatabase::class.java, "favorites_database")
.build()
.also { Instance = it }
}
}
}
}