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
Tableclass namedLocalSettingswill be calledlocal_settingsby 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 ROWIDclause in theCREATE TABLEstatement. 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
typewhen 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
enumclassT.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
enumclassT.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited