createMessage method
Future<void>
createMessage({
- required String messageId,
- required String senderId,
- required String targetId,
- required List<
int> payload, - required int ttl,
- String? signature,
- MediaType mediaType = MediaType.text,
- String? mediaFileName,
- String? mediaMimeType,
- int? mediaFileSize,
- String? mediaHash,
- String? mediaLocalPath,
- MediaAvailability mediaAvailability = MediaAvailability.notApplicable,
- Uint8List? mediaThumbnail,
Convenience: insert a new outgoing message created by the local user.
Usage:
await db.createMessage(
messageId: uuid.v4(),
senderId: localNodeId,
targetId: recipientNodeId, // or '*' for broadcast
payload: utf8.encode('Hello mesh!'),
ttl: kAirpassDefaultMaxHops,
);
Implementation
Future<void> createMessage({
required String messageId,
required String senderId,
required String targetId,
required List<int> payload,
required int ttl,
String? signature,
// Media fields (all optional — text messages omit these)
MediaType mediaType = MediaType.text,
String? mediaFileName,
String? mediaMimeType,
int? mediaFileSize,
String? mediaHash,
String? mediaLocalPath,
MediaAvailability mediaAvailability = MediaAvailability.notApplicable,
Uint8List? mediaThumbnail,
}) {
return into(messages).insert(MessagesCompanion.insert(
messageId: messageId,
senderId: senderId,
targetId: targetId,
payload: Uint8List.fromList(payload),
createdAt: DateTime.now().millisecondsSinceEpoch,
ttl: ttl,
signature: Value(signature),
mediaType: Value(mediaType.value),
mediaFileName: Value(mediaFileName),
mediaMimeType: Value(mediaMimeType),
mediaFileSize: Value(mediaFileSize),
mediaHash: Value(mediaHash),
mediaLocalPath: Value(mediaLocalPath),
mediaAvailability: Value(mediaAvailability.value),
mediaThumbnail: Value(mediaThumbnail),
));
}