package org.pixeldroid.app.utils.db.dao import androidx.room.* import org.pixeldroid.app.utils.db.entities.InstanceDatabaseEntity @Dao interface InstanceDao { @Query("SELECT * FROM instances") fun getAll(): List @Query("SELECT * FROM instances WHERE uri=:instanceUri") fun getInstance(instanceUri: String): InstanceDatabaseEntity @Query("SELECT * FROM instances WHERE uri=(SELECT users.instance_uri FROM users WHERE isActive=1)") fun getActiveInstance(): InstanceDatabaseEntity /** * Insert an instance, if it already exists return -1 */ @Insert(onConflict = OnConflictStrategy.IGNORE) fun insertInstance(instance: InstanceDatabaseEntity): Long @Update fun updateInstance(instance: InstanceDatabaseEntity) @Transaction fun insertOrUpdate(instance: InstanceDatabaseEntity) { if (insertInstance(instance) == -1L) { updateInstance(instance) } } }