Coverage Summary for Class: SyncMetaEntity (com.georgeci.moneysurfer.sync.db.entity)

Class Class, % Method, % Branch, % Line, % Instruction, %
SyncMetaEntity 100% (1/1) 100% (1/1) 100% (6/6) 100% (27/27)


 package com.georgeci.moneysurfer.sync.db.entity
 
 import androidx.room.ColumnInfo
 import androidx.room.Entity
 
 /**
  * Per-(workspace, collection) cursor + last-sync timestamps.
  *
  * No FK on [workspaceId] — sync_meta may exist for a workspace that has been
  * deleted locally (the cursor will be reused once the workspace is re-pulled).
  *
  * See sync.md §4.3.
  */
 @Entity(
     tableName = "sync_meta",
     primaryKeys = ["workspaceId", "collection"],
 )
 data class SyncMetaEntity(
     @ColumnInfo(name = "workspaceId") val workspaceId: String,
     @ColumnInfo(name = "collection") val collection: String,
     @ColumnInfo(name = "lastPulledAt") val lastPulledAt: Long?,
     @ColumnInfo(name = "lastSyncSuccessAt") val lastSyncSuccessAt: Long?,
     @ColumnInfo(name = "lastSyncAttemptAt") val lastSyncAttemptAt: Long?,
 )