Messages class

Store-and-forward message table — holds messages created locally or received via gossip that haven't yet reached their target.

Implementers

Constructors

Messages()

Properties

createdAt → IntColumn
Epoch milliseconds when the message was originally created.
no setter
customConstraints List<String>
Custom table constraints that should be added to the table.
no setterinherited
dontWriteConstraints bool
Drift will write some table constraints automatically, for instance when you override primaryKey. You can turn this behavior off if you want to. This is intended to be used by generated code only.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
isStrict bool
Whether this table is STRICT.
no setterinherited
mediaAvailability → IntColumn
Availability state of the media binary on this device. See MediaAvailability. Defaults to 0 (notApplicable — text message).
no setter
mediaFileName → TextColumn
Original filename of the attached media (e.g., 'photo_001.jpg'). Null for text-only messages.
no setter
mediaFileSize → IntColumn
Size of the full media file in bytes. Used by the UI to display file size and decide auto-download.
no setter
mediaHash → TextColumn
SHA-256 hash of the full media file for integrity verification. Computed on send, verified on receive after FILE transfer.
no setter
mediaLocalPath → TextColumn
Local filesystem path to the downloaded media binary. Null until the binary is successfully transferred.
no setter
mediaMimeType → TextColumn
MIME type of the media (e.g., 'image/jpeg', 'video/mp4'). Null for text-only messages.
no setter
mediaThumbnail → BlobColumn
Compressed thumbnail bytes (JPEG, ≤5 KB) for instant preview. Embedded directly in the epidemic sync payload so users see a preview even before the full file is transferred.
no setter
mediaType → IntColumn
The type of media attached (0 = text, 1 = image, 2 = video, etc.). See MediaType. Defaults to 0 (text — no media).
no setter
messageId → TextColumn
Globally unique message identifier (UUID v4).
no setter
payload → BlobColumn
The encoded message content (arbitrary bytes).
no setter
primaryKey Set<Column<Object>>
Override this to specify custom primary keys:
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
senderId → TextColumn
The originating node's ID.
no setter
signature → TextColumn
Optional HMAC-SHA256 signature for message integrity verification. Computed by MessageSigner when the message is created locally. Relaying nodes can verify the signature to detect tampering.
no setter
status → IntColumn
Delivery status, stored as an integer mapping to MessageStatus.
no setter
tableName String?
The sql table name to be used. By default, drift will use the snake_case representation of your class name as the sql table name. For instance, a Table class named LocalSettings will be called local_settings by default. You can change that behavior by overriding this method to use a custom name. Please note that you must directly return a string literal by using a getter. For instance @override String get tableName => 'my_table'; is valid, whereas @override final String tableName = 'my_table'; or @override String get tableName => createMyTableName(); is not.
no setterinherited
targetId → TextColumn
The destination node's ID. Use '*' for broadcast messages.
no setter
ttl → IntColumn
Remaining hop budget. Decremented on each relay. When this reaches 0, the message is marked MessageStatus.expired.
no setter
uniqueKeys List<Set<Column<Object>>>?
Unique constraints in this table.
no setterinherited
withoutRowId bool
Whether to append a WITHOUT ROWID clause in the CREATE TABLE statement. This is intended to be used by generated code only.
no setterinherited

Methods

blob() → ColumnBuilder<Uint8List>
Use this as the body of a getter to declare a column that holds arbitrary data blobs, stored as an Uint8List. Example:
inherited
boolean() → ColumnBuilder<bool>
Use this as the body of a getter to declare a column that holds bools. Example (inside the body of a table class):
inherited
customType<T extends Object>(UserDefinedSqlType<T> type) → ColumnBuilder<T>
Defines a column with a custom type when used as a getter.
inherited
dateTime() → ColumnBuilder<DateTime>
Use this as the body of a getter to declare a column that holds date and time values.
inherited
int64() → ColumnBuilder<BigInt>
Use this as the body of a getter to declare a column that holds a 64-big integer as a BigInt.
inherited
integer() → ColumnBuilder<int>
Use this as the body of a getter to declare a column that holds integers.
inherited
intEnum<T extends Enum>() → ColumnBuilder<int>
Creates a column to store an enum class T.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
real() → ColumnBuilder<double>
Use this as the body of a getter to declare a column that holds floating point numbers. Example
inherited
sqliteAny() → ColumnBuilder<DriftAny>
Use this as a the body of a getter to declare a column that holds arbitrary values not modified by drift at runtime.
inherited
text() → ColumnBuilder<String>
Use this as the body of a getter to declare a column that holds strings. Example (inside the body of a table class):
inherited
textEnum<T extends Enum>() → ColumnBuilder<String>
Creates a column to store an enum class T.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited