database/airpass_database library

Airpass Protocol — Drift Database Definition

Defines the three core tables (Nodes, Messages, and Groups) and their type-safe DAO methods. Uses Drift's code generation for reactive queries and compile-time SQL validation.

After modifying this file, regenerate with:

dart run build_runner build --delete-conflicting-outputs

Classes

$$GroupsTableAnnotationComposer
$$GroupsTableFilterComposer
$$GroupsTableOrderingComposer
$$GroupsTableTableManager
$$MessageDeliveriesTableAnnotationComposer
$$MessageDeliveriesTableFilterComposer
$$MessageDeliveriesTableOrderingComposer
$$MessageDeliveriesTableTableManager
$$MessagesTableAnnotationComposer
$$MessagesTableFilterComposer
$$MessagesTableOrderingComposer
$$MessagesTableTableManager
$$NodesTableAnnotationComposer
$$NodesTableFilterComposer
$$NodesTableOrderingComposer
$$NodesTableTableManager
$AirpassDatabaseManager
$GroupsTable
$MessageDeliveriesTable
$MessagesTable
$NodesTable
AirpassDatabase
Group
Groups
Group directory — stores groups discovered through the mesh network. Groups are learned passively (from endpoint names during discovery) and actively (from routing tables exchanged during sync).
GroupsCompanion
Message
MessageDeliveries
Per-peer message delivery tracking — prevents retransmitting messages to peers that have already received them.
MessageDeliveriesCompanion
MessageDelivery
Messages
Store-and-forward message table — holds messages created locally or received via gossip that haven't yet reached their target.
MessagesCompanion
Node
Nodes
Routing table — stores every node this device has ever learned about through direct encounter or gossip relay.
NodesCompanion

Typedefs

$$GroupsTableCreateCompanionBuilder = GroupsCompanion Function({required int discoveredAt, required String displayName, required String groupId, Value<bool> isSubscribed, required int lastSeenAt, Value<int> memberCount, Value<String?> metadata, Value<int> rowid})
$$GroupsTableProcessedTableManager = ProcessedTableManager<_$AirpassDatabase, $GroupsTable, Group, $$GroupsTableFilterComposer, $$GroupsTableOrderingComposer, $$GroupsTableAnnotationComposer, $$GroupsTableCreateCompanionBuilder, $$GroupsTableUpdateCompanionBuilder, (Group, BaseReferences<_$AirpassDatabase, $GroupsTable, Group>), Group, PrefetchHooks Function()>
$$GroupsTableUpdateCompanionBuilder = GroupsCompanion Function({Value<int> discoveredAt, Value<String> displayName, Value<String> groupId, Value<bool> isSubscribed, Value<int> lastSeenAt, Value<int> memberCount, Value<String?> metadata, Value<int> rowid})
$$MessageDeliveriesTableCreateCompanionBuilder = MessageDeliveriesCompanion Function({required int deliveredAt, required String messageId, required String peerNodeId, Value<int> rowid})
$$MessageDeliveriesTableProcessedTableManager = ProcessedTableManager<_$AirpassDatabase, $MessageDeliveriesTable, MessageDelivery, $$MessageDeliveriesTableFilterComposer, $$MessageDeliveriesTableOrderingComposer, $$MessageDeliveriesTableAnnotationComposer, $$MessageDeliveriesTableCreateCompanionBuilder, $$MessageDeliveriesTableUpdateCompanionBuilder, (MessageDelivery, BaseReferences<_$AirpassDatabase, $MessageDeliveriesTable, MessageDelivery>), MessageDelivery, PrefetchHooks Function()>
$$MessageDeliveriesTableUpdateCompanionBuilder = MessageDeliveriesCompanion Function({Value<int> deliveredAt, Value<String> messageId, Value<String> peerNodeId, Value<int> rowid})
$$MessagesTableCreateCompanionBuilder = MessagesCompanion Function({required int createdAt, Value<int> mediaAvailability, Value<String?> mediaFileName, Value<int?> mediaFileSize, Value<String?> mediaHash, Value<String?> mediaLocalPath, Value<String?> mediaMimeType, Value<Uint8List?> mediaThumbnail, Value<int> mediaType, required String messageId, required Uint8List payload, Value<int> rowid, required String senderId, Value<String?> signature, Value<int> status, required String targetId, required int ttl})
$$MessagesTableProcessedTableManager = ProcessedTableManager<_$AirpassDatabase, $MessagesTable, Message, $$MessagesTableFilterComposer, $$MessagesTableOrderingComposer, $$MessagesTableAnnotationComposer, $$MessagesTableCreateCompanionBuilder, $$MessagesTableUpdateCompanionBuilder, (Message, BaseReferences<_$AirpassDatabase, $MessagesTable, Message>), Message, PrefetchHooks Function()>
$$MessagesTableUpdateCompanionBuilder = MessagesCompanion Function({Value<int> createdAt, Value<int> mediaAvailability, Value<String?> mediaFileName, Value<int?> mediaFileSize, Value<String?> mediaHash, Value<String?> mediaLocalPath, Value<String?> mediaMimeType, Value<Uint8List?> mediaThumbnail, Value<int> mediaType, Value<String> messageId, Value<Uint8List> payload, Value<int> rowid, Value<String> senderId, Value<String?> signature, Value<int> status, Value<String> targetId, Value<int> ttl})
$$NodesTableCreateCompanionBuilder = NodesCompanion Function({Value<int?> batteryLevel, Value<String?> displayName, Value<String?> groupId, Value<bool> hasInternetAccess, Value<int> hopCount, required int lastSeen, Value<String?> metadata, required String nodeId, Value<int> role, Value<int> rowid})
$$NodesTableProcessedTableManager = ProcessedTableManager<_$AirpassDatabase, $NodesTable, Node, $$NodesTableFilterComposer, $$NodesTableOrderingComposer, $$NodesTableAnnotationComposer, $$NodesTableCreateCompanionBuilder, $$NodesTableUpdateCompanionBuilder, (Node, BaseReferences<_$AirpassDatabase, $NodesTable, Node>), Node, PrefetchHooks Function()>
$$NodesTableUpdateCompanionBuilder = NodesCompanion Function({Value<int?> batteryLevel, Value<String?> displayName, Value<String?> groupId, Value<bool> hasInternetAccess, Value<int> hopCount, Value<int> lastSeen, Value<String?> metadata, Value<String> nodeId, Value<int> role, Value<int> rowid})