LazyStoredConversation
Defined in: src/lib/db/chat/types.ts:193
Lazy variant of StoredConversation.
Identical to StoredConversation except title is replaced with
encryptedTitle — the raw value as persisted in WatermelonDB. The
caller is responsible for decrypting the title when (and only when)
the row is actually rendered, typically via decryptConversationTitle
inside an IntersectionObserver callback or a virtualized list.
For users with thousands of conversations this means plaintext titles for the off-screen rows never enter client RAM.
The string in encryptedTitle may also be plaintext (legacy/unencrypted
conversations); decryptConversationTitle handles both transparently.
Extends
Omit<StoredConversation,"title">
Properties
conversationId
conversationId:
string
Defined in: src/lib/db/chat/types.ts:166
Inherited from
StoredConversation.conversationId
createdAt
createdAt:
Date
Defined in: src/lib/db/chat/types.ts:170
Inherited from
encryptedTitle
encryptedTitle:
string
Defined in: src/lib/db/chat/types.ts:199
Raw stored title — either ciphertext (enc:v3:...) or plaintext for
legacy rows. Pass to decryptConversationTitle(encryptedTitle, address)
when the row needs to be rendered.
isDeleted
isDeleted:
boolean
Defined in: src/lib/db/chat/types.ts:172
Inherited from
pinnedAt?
optionalpinnedAt:Date|null
Defined in: src/lib/db/chat/types.ts:175
When the conversation was pinned to the top of the list; null/unset = not pinned.
null (not undefined) at runtime for unpinned rows — mirrors the model field.
Inherited from
projectId?
optionalprojectId:string
Defined in: src/lib/db/chat/types.ts:169
Optional project ID this conversation belongs to
Inherited from
uniqueId
uniqueId:
string
Defined in: src/lib/db/chat/types.ts:165
Inherited from
updatedAt
updatedAt:
Date
Defined in: src/lib/db/chat/types.ts:171
Inherited from