Home · Apps · rl-main-infra · todo_api · todo_mobile
todo_mobile persists primary state in Hive, then syncs to backend.
| Box | Type | Purpose |
|---|---|---|
lists |
Box<Map> |
Local cache of TodoList entities |
todos |
Box<Map> |
Local cache of TodoItem entities |
auth |
Box<String> |
Reserved app auth storage box |
syncQueue |
Box<Map> |
Pending outbound sync jobs (SyncJob) |
TodoListid: String (UUID)name: Stringdescription: StringupdatedAt: DateTime (UTC)deleted: bool (soft delete)version: int (conflict/version tracking)TodoItemid: String (UUID)listId: String (parent list)title: Stringdescription: StringdueDate: DateTime?labels: List<String>reminderAt: DateTime?completed: boolupdatedAt: DateTime (UTC)deleted: bool (soft delete)version: intSyncJobid: StringentityType: String (e.g. todo, future entities)payload: Map<String, dynamic>updatedAt: DateTime (UTC)retries: interDiagram
TODO_LIST ||--o{ TODO_ITEM : contains
TODO_ITEM ||--o{ SYNC_JOB : enqueued_as_payload
TODO_LIST {
string id PK
string name
string description
datetime updatedAt
bool deleted
int version
}
TODO_ITEM {
string id PK
string listId FK
string title
string description
datetime dueDate
string[] labels
datetime reminderAt
bool completed
datetime updatedAt
bool deleted
int version
}
SYNC_JOB {
string id PK
string entityType
json payload
datetime updatedAt
int retries
}
version is used by conflict logic (serverWins, clientWins, manualMerge).