package com.enterprise.mdm.data.local import androidx.room.Dao import androidx.room.Database import androidx.room.Entity import androidx.room.Insert import androidx.room.PrimaryKey import androidx.room.Query import androidx.room.Room import androidx.room.RoomDatabase import android.content.Context @Entity(tableName = "offline_actions") data class OfflineAction( @PrimaryKey(autoGenerate = true) val id: Int = 0, val endpoint: String, val payload: String, val createdAt: Long = System.currentTimeMillis() ) @Dao interface OfflineDao { @Insert suspend fun insert(action: OfflineAction) @Query("SELECT * FROM offline_actions ORDER BY id ASC") suspend fun all(): List @Query("DELETE FROM offline_actions WHERE id = :id") suspend fun delete(id: Int) @Query("SELECT COUNT(*) FROM offline_actions") suspend fun count(): Int } @Database(entities = [OfflineAction::class], version = 1, exportSchema = false) abstract class AppDatabase : RoomDatabase() { abstract fun offlineDao(): OfflineDao companion object { @Volatile private var instance: AppDatabase? = null fun get(context: Context): AppDatabase = instance ?: synchronized(this) { instance ?: Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, "mdm.db") .build().also { instance = it } } } }