Pith - kiln
package com.vgmlr.kiln

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import kotlinx.coroutines.flow.Flow

@Dao
interface KilnButtonDao {
    @Insert
    suspend fun insert(button: KilnButton): Long

    @Insert
    suspend fun insertAll(buttons: List<KilnButton>)

    @Update
    suspend fun update(button: KilnButton)

    @Update
    suspend fun updateAll(buttons: List<KilnButton>)

    @Delete
    suspend fun delete(button: KilnButton)

    @Query("SELECT * FROM button WHERE accountId = :accountId ORDER BY sort, id")
    fun observeAll(accountId: Long): Flow<List<KilnButton>>

    @Query("SELECT * FROM button ORDER BY accountId, sort, id")
    fun observeEvery(): Flow<List<KilnButton>>

    @Query("SELECT * FROM button WHERE accountId = :accountId ORDER BY sort, id")
    suspend fun getAll(accountId: Long): List<KilnButton>
}