package com.parkplants.data.db.dao import androidx.room.* import com.parkplants.data.db.entities.PendingPlant import kotlinx.coroutines.flow.Flow @Dao interface PendingPlantDao { @Insert suspend fun insert(plant: PendingPlant): Long @Query("SELECT * FROM pending_plants WHERE synced = 0 ORDER BY createdAt ASC") suspend fun getUnsynced(): List @Query("SELECT * FROM pending_plants ORDER BY createdAt DESC") fun observeAll(): Flow> @Query("UPDATE pending_plants SET synced = 1, syncError = NULL WHERE id = :id") suspend fun markSynced(id: Long) @Query("UPDATE pending_plants SET syncError = :error WHERE id = :id") suspend fun markFailed(id: Long, error: String) @Query("UPDATE pending_plants SET photoUrl = :url WHERE id = :id") suspend fun updatePhotoUrl(id: Long, url: String) @Query("DELETE FROM pending_plants WHERE synced = 1") suspend fun deleteSynced() @Query("SELECT COUNT(*) FROM pending_plants WHERE synced = 0") fun observeUnsyncedCount(): Flow }