{ "_meta": { "description": "This file contains a serialized version of schema entities for drift.", "version": "1.3.0" }, "options": { "store_date_time_values_as_text": false }, "entities": [ { "id": 0, "references": [], "type": "table", "data": { "name": "contacts", "was_declared_in_moor": false, "columns": [ { "name": "user_id", "getter_name": "userId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "username", "getter_name": "username", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "display_name", "getter_name": "displayName", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "nick_name", "getter_name": "nickName", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "avatar_svg_compressed", "getter_name": "avatarSvgCompressed", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sender_profile_counter", "getter_name": "senderProfileCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "accepted", "getter_name": "accepted", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"accepted\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"accepted\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "deleted_by_user", "getter_name": "deletedByUser", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"deleted_by_user\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"deleted_by_user\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "requested", "getter_name": "requested", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"requested\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"requested\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "blocked", "getter_name": "blocked", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"blocked\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"blocked\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "verified", "getter_name": "verified", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"verified\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"verified\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "account_deleted", "getter_name": "accountDeleted", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"account_deleted\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"account_deleted\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] }, { "name": "user_discovery_version", "getter_name": "userDiscoveryVersion", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "user_discovery_excluded", "getter_name": "userDiscoveryExcluded", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"user_discovery_excluded\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"user_discovery_excluded\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "user_discovery_manual_approved", "getter_name": "userDiscoveryManualApproved", "moor_type": "bool", "nullable": true, "customConstraints": null, "defaultConstraints": "CHECK (\"user_discovery_manual_approved\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"user_discovery_manual_approved\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "media_send_counter", "getter_name": "mediaSendCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "media_received_counter", "getter_name": "mediaReceivedCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "user_id" ] } }, { "id": 1, "references": [], "type": "table", "data": { "name": "groups", "was_declared_in_moor": false, "columns": [ { "name": "group_id", "getter_name": "groupId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "is_group_admin", "getter_name": "isGroupAdmin", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_group_admin\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_group_admin\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "is_direct_chat", "getter_name": "isDirectChat", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_direct_chat\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_direct_chat\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "pinned", "getter_name": "pinned", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"pinned\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"pinned\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "archived", "getter_name": "archived", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"archived\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"archived\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "joined_group", "getter_name": "joinedGroup", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"joined_group\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"joined_group\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "left_group", "getter_name": "leftGroup", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"left_group\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"left_group\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "deleted_content", "getter_name": "deletedContent", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"deleted_content\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"deleted_content\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "state_version_id", "getter_name": "stateVersionId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "state_encryption_key", "getter_name": "stateEncryptionKey", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "my_group_private_key", "getter_name": "myGroupPrivateKey", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group_name", "getter_name": "groupName", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "draft_message", "getter_name": "draftMessage", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "total_media_counter", "getter_name": "totalMediaCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "also_best_friend", "getter_name": "alsoBestFriend", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"also_best_friend\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"also_best_friend\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "delete_messages_after_milliseconds", "getter_name": "deleteMessagesAfterMilliseconds", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('86400000')", "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] }, { "name": "last_message_send", "getter_name": "lastMessageSend", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_message_received", "getter_name": "lastMessageReceived", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_flame_counter_change", "getter_name": "lastFlameCounterChange", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_flame_sync", "getter_name": "lastFlameSync", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "flame_counter", "getter_name": "flameCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "max_flame_counter", "getter_name": "maxFlameCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "max_flame_counter_from", "getter_name": "maxFlameCounterFrom", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_message_exchange", "getter_name": "lastMessageExchange", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "group_id" ] } }, { "id": 2, "references": [], "type": "table", "data": { "name": "media_files", "was_declared_in_moor": false, "columns": [ { "name": "media_id", "getter_name": "mediaId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "type", "getter_name": "type", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(MediaType.values)", "dart_type_name": "MediaType" } }, { "name": "upload_state", "getter_name": "uploadState", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(UploadState.values)", "dart_type_name": "UploadState" } }, { "name": "download_state", "getter_name": "downloadState", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(DownloadState.values)", "dart_type_name": "DownloadState" } }, { "name": "requires_authentication", "getter_name": "requiresAuthentication", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"requires_authentication\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"requires_authentication\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "stored", "getter_name": "stored", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"stored\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"stored\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "is_draft_media", "getter_name": "isDraftMedia", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_draft_media\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_draft_media\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "is_favorite", "getter_name": "isFavorite", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_favorite\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_favorite\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "has_crop_analyzed", "getter_name": "hasCropAnalyzed", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"has_crop_analyzed\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"has_crop_analyzed\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "pre_progressing_process", "getter_name": "preProgressingProcess", "moor_type": "int", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "reupload_requested_by", "getter_name": "reuploadRequestedBy", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "IntListTypeConverter()", "dart_type_name": "List" } }, { "name": "display_limit_in_milliseconds", "getter_name": "displayLimitInMilliseconds", "moor_type": "int", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "remove_audio", "getter_name": "removeAudio", "moor_type": "bool", "nullable": true, "customConstraints": null, "defaultConstraints": "CHECK (\"remove_audio\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"remove_audio\" IN (0, 1))" }, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "download_token", "getter_name": "downloadToken", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "encryption_key", "getter_name": "encryptionKey", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "encryption_mac", "getter_name": "encryptionMac", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "encryption_nonce", "getter_name": "encryptionNonce", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "stored_file_hash", "getter_name": "storedFileHash", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] }, { "name": "created_at_month", "getter_name": "createdAtMonth", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "media_id" ] } }, { "id": 3, "references": [ 1, 0, 2 ], "type": "table", "data": { "name": "messages", "was_declared_in_moor": false, "columns": [ { "name": "group_id", "getter_name": "groupId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "groups", "column": "group_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "message_id", "getter_name": "messageId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sender_id", "getter_name": "senderId", "moor_type": "int", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id)", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id)" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": null } } ] }, { "name": "type", "getter_name": "type", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "content", "getter_name": "content", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "media_id", "getter_name": "mediaId", "moor_type": "string", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES media_files (media_id) ON DELETE SET NULL", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES media_files (media_id) ON DELETE SET NULL" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "media_files", "column": "media_id" }, "initially_deferred": false, "on_update": null, "on_delete": "setNull" } } ] }, { "name": "additional_message_data", "getter_name": "additionalMessageData", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "media_stored", "getter_name": "mediaStored", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"media_stored\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"media_stored\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "media_reopened", "getter_name": "mediaReopened", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"media_reopened\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"media_reopened\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "download_token", "getter_name": "downloadToken", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "quotes_message_id", "getter_name": "quotesMessageId", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "is_deleted_from_sender", "getter_name": "isDeletedFromSender", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_deleted_from_sender\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_deleted_from_sender\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "opened_at", "getter_name": "openedAt", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "opened_by_all", "getter_name": "openedByAll", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] }, { "name": "modified_at", "getter_name": "modifiedAt", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "ack_by_user", "getter_name": "ackByUser", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "ack_by_server", "getter_name": "ackByServer", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "message_id" ] } }, { "id": 4, "references": [ 3, 0 ], "type": "table", "data": { "name": "message_histories", "was_declared_in_moor": false, "columns": [ { "name": "id", "getter_name": "id", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "message_id", "getter_name": "messageId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES messages (message_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES messages (message_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "messages", "column": "message_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "content", "getter_name": "content", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 5, "references": [ 3, 0 ], "type": "table", "data": { "name": "reactions", "was_declared_in_moor": false, "columns": [ { "name": "message_id", "getter_name": "messageId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES messages (message_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES messages (message_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "messages", "column": "message_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "emoji", "getter_name": "emoji", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sender_id", "getter_name": "senderId", "moor_type": "int", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "message_id", "sender_id", "emoji" ] } }, { "id": 6, "references": [ 1, 0 ], "type": "table", "data": { "name": "group_members", "was_declared_in_moor": false, "columns": [ { "name": "group_id", "getter_name": "groupId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "groups", "column": "group_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id)", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id)" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": null } } ] }, { "name": "member_state", "getter_name": "memberState", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(MemberState.values)", "dart_type_name": "MemberState" } }, { "name": "group_public_key", "getter_name": "groupPublicKey", "moor_type": "blob", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_chat_opened", "getter_name": "lastChatOpened", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_type_indicator", "getter_name": "lastTypeIndicator", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "last_message", "getter_name": "lastMessage", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "group_id", "contact_id" ] } }, { "id": 7, "references": [ 0, 3 ], "type": "table", "data": { "name": "receipts", "was_declared_in_moor": false, "columns": [ { "name": "receipt_id", "getter_name": "receiptId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "message_id", "getter_name": "messageId", "moor_type": "string", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES messages (message_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES messages (message_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "messages", "column": "message_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "message", "getter_name": "message", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "contact_will_sends_receipt", "getter_name": "contactWillSendsReceipt", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"contact_will_sends_receipt\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"contact_will_sends_receipt\" IN (0, 1))" }, "default_dart": "const CustomExpression('1')", "default_client_dart": null, "dsl_features": [] }, { "name": "will_be_retried_by_media_upload", "getter_name": "willBeRetriedByMediaUpload", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"will_be_retried_by_media_upload\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"will_be_retried_by_media_upload\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "mark_for_retry", "getter_name": "markForRetry", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "mark_for_retry_after_accepted", "getter_name": "markForRetryAfterAccepted", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "ack_by_server_at", "getter_name": "ackByServerAt", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "retry_count", "getter_name": "retryCount", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "last_retry", "getter_name": "lastRetry", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "receipt_id" ] } }, { "id": 8, "references": [], "type": "table", "data": { "name": "received_receipts", "was_declared_in_moor": false, "columns": [ { "name": "receipt_id", "getter_name": "receiptId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "receipt_id" ] } }, { "id": 9, "references": [], "type": "table", "data": { "name": "signal_identity_key_stores", "was_declared_in_moor": false, "columns": [ { "name": "device_id", "getter_name": "deviceId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "name", "getter_name": "name", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "identity_key", "getter_name": "identityKey", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "device_id", "name" ] } }, { "id": 10, "references": [], "type": "table", "data": { "name": "signal_pre_key_stores", "was_declared_in_moor": false, "columns": [ { "name": "pre_key_id", "getter_name": "preKeyId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "pre_key", "getter_name": "preKey", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "pre_key_id" ] } }, { "id": 11, "references": [], "type": "table", "data": { "name": "signal_sender_key_stores", "was_declared_in_moor": false, "columns": [ { "name": "sender_key_name", "getter_name": "senderKeyName", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "sender_key", "getter_name": "senderKey", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "sender_key_name" ] } }, { "id": 12, "references": [], "type": "table", "data": { "name": "signal_session_stores", "was_declared_in_moor": false, "columns": [ { "name": "device_id", "getter_name": "deviceId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "name", "getter_name": "name", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "session_record", "getter_name": "sessionRecord", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "device_id", "name" ] } }, { "id": 13, "references": [ 3, 0 ], "type": "table", "data": { "name": "message_actions", "was_declared_in_moor": false, "columns": [ { "name": "message_id", "getter_name": "messageId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES messages (message_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES messages (message_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "messages", "column": "message_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "type", "getter_name": "type", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(MessageActionType.values)", "dart_type_name": "MessageActionType" } }, { "name": "action_at", "getter_name": "actionAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "message_id", "contact_id", "type" ] } }, { "id": 14, "references": [ 1, 0 ], "type": "table", "data": { "name": "group_histories", "was_declared_in_moor": false, "columns": [ { "name": "group_history_id", "getter_name": "groupHistoryId", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "group_id", "getter_name": "groupId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "groups", "column": "group_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id)", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id)" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": null } } ] }, { "name": "affected_contact_id", "getter_name": "affectedContactId", "moor_type": "int", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "old_group_name", "getter_name": "oldGroupName", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "new_group_name", "getter_name": "newGroupName", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "new_delete_messages_after_milliseconds", "getter_name": "newDeleteMessagesAfterMilliseconds", "moor_type": "int", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "type", "getter_name": "type", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(GroupActionType.values)", "dart_type_name": "GroupActionType" } }, { "name": "action_at", "getter_name": "actionAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "group_history_id" ] } }, { "id": 15, "references": [ 0 ], "type": "table", "data": { "name": "key_verifications", "was_declared_in_moor": false, "columns": [ { "name": "verification_id", "getter_name": "verificationId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "type", "getter_name": "type", "moor_type": "string", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [], "type_converter": { "dart_expr": "const EnumNameConverter(VerificationType.values)", "dart_type_name": "VerificationType" } }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 16, "references": [], "type": "table", "data": { "name": "verification_tokens", "was_declared_in_moor": false, "columns": [ { "name": "token_id", "getter_name": "tokenId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "token", "getter_name": "token", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "created_at", "getter_name": "createdAt", "moor_type": "dateTime", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('CAST(strftime(\\'%s\\', CURRENT_TIMESTAMP) AS INTEGER)')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 17, "references": [], "type": "table", "data": { "name": "user_discovery_announced_users", "was_declared_in_moor": false, "columns": [ { "name": "announced_user_id", "getter_name": "announcedUserId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "announced_public_key", "getter_name": "announcedPublicKey", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "public_id", "getter_name": "publicId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "UNIQUE", "dialectAwareDefaultConstraints": { "sqlite": "UNIQUE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "unique" ] }, { "name": "username", "getter_name": "username", "moor_type": "string", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "was_shown_to_the_user", "getter_name": "wasShownToTheUser", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"was_shown_to_the_user\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"was_shown_to_the_user\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] }, { "name": "is_hidden", "getter_name": "isHidden", "moor_type": "bool", "nullable": false, "customConstraints": null, "defaultConstraints": "CHECK (\"is_hidden\" IN (0, 1))", "dialectAwareDefaultConstraints": { "sqlite": "CHECK (\"is_hidden\" IN (0, 1))" }, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "announced_user_id" ] } }, { "id": 18, "references": [ 17, 0 ], "type": "table", "data": { "name": "user_discovery_user_relations", "was_declared_in_moor": false, "columns": [ { "name": "announced_user_id", "getter_name": "announcedUserId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES user_discovery_announced_users (announced_user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES user_discovery_announced_users (announced_user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "user_discovery_announced_users", "column": "announced_user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "from_contact_id", "getter_name": "fromContactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "public_key_verified_timestamp", "getter_name": "publicKeyVerifiedTimestamp", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "announced_user_id", "from_contact_id" ] } }, { "id": 19, "references": [ 0 ], "type": "table", "data": { "name": "user_discovery_other_promotions", "was_declared_in_moor": false, "columns": [ { "name": "from_contact_id", "getter_name": "fromContactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "promotion_id", "getter_name": "promotionId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "public_id", "getter_name": "publicId", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "threshold", "getter_name": "threshold", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "announcement_share", "getter_name": "announcementShare", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "public_key_verified_timestamp", "getter_name": "publicKeyVerifiedTimestamp", "moor_type": "dateTime", "nullable": true, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "from_contact_id", "public_id" ] } }, { "id": 20, "references": [ 0 ], "type": "table", "data": { "name": "user_discovery_own_promotions", "was_declared_in_moor": false, "columns": [ { "name": "version_id", "getter_name": "versionId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "promotion", "getter_name": "promotion", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 21, "references": [ 0 ], "type": "table", "data": { "name": "user_discovery_shares", "was_declared_in_moor": false, "columns": [ { "name": "share_id", "getter_name": "shareId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "share", "getter_name": "share", "moor_type": "blob", "nullable": false, "customConstraints": null, "default_dart": null, "default_client_dart": null, "dsl_features": [] }, { "name": "contact_id", "getter_name": "contactId", "moor_type": "int", "nullable": true, "customConstraints": null, "defaultConstraints": "REFERENCES contacts (user_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES contacts (user_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "contacts", "column": "user_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 22, "references": [], "type": "table", "data": { "name": "shortcuts", "was_declared_in_moor": false, "columns": [ { "name": "id", "getter_name": "id", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "PRIMARY KEY AUTOINCREMENT", "dialectAwareDefaultConstraints": { "sqlite": "PRIMARY KEY AUTOINCREMENT" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "auto-increment" ] }, { "name": "emoji", "getter_name": "emoji", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "UNIQUE", "dialectAwareDefaultConstraints": { "sqlite": "UNIQUE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ "unique" ] }, { "name": "usage_counter", "getter_name": "usageCounter", "moor_type": "int", "nullable": false, "customConstraints": null, "default_dart": "const CustomExpression('0')", "default_client_dart": null, "dsl_features": [] } ], "is_virtual": false, "without_rowid": false, "constraints": [] } }, { "id": 23, "references": [ 22, 1 ], "type": "table", "data": { "name": "shortcut_members", "was_declared_in_moor": false, "columns": [ { "name": "shortcut_id", "getter_name": "shortcutId", "moor_type": "int", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES shortcuts (id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES shortcuts (id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "shortcuts", "column": "id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] }, { "name": "group_id", "getter_name": "groupId", "moor_type": "string", "nullable": false, "customConstraints": null, "defaultConstraints": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE", "dialectAwareDefaultConstraints": { "sqlite": "REFERENCES \"groups\" (group_id) ON DELETE CASCADE" }, "default_dart": null, "default_client_dart": null, "dsl_features": [ { "foreign_key": { "to": { "table": "groups", "column": "group_id" }, "initially_deferred": false, "on_update": null, "on_delete": "cascade" } } ] } ], "is_virtual": false, "without_rowid": false, "constraints": [], "explicit_pk": [ "shortcut_id", "group_id" ] } } ], "fixed_sql": [ { "name": "contacts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"contacts\" (\"user_id\" INTEGER NOT NULL, \"username\" TEXT NOT NULL, \"display_name\" TEXT NULL, \"nick_name\" TEXT NULL, \"avatar_svg_compressed\" BLOB NULL, \"sender_profile_counter\" INTEGER NOT NULL DEFAULT 0, \"accepted\" INTEGER NOT NULL DEFAULT 0 CHECK (\"accepted\" IN (0, 1)), \"deleted_by_user\" INTEGER NOT NULL DEFAULT 0 CHECK (\"deleted_by_user\" IN (0, 1)), \"requested\" INTEGER NOT NULL DEFAULT 0 CHECK (\"requested\" IN (0, 1)), \"blocked\" INTEGER NOT NULL DEFAULT 0 CHECK (\"blocked\" IN (0, 1)), \"verified\" INTEGER NOT NULL DEFAULT 0 CHECK (\"verified\" IN (0, 1)), \"account_deleted\" INTEGER NOT NULL DEFAULT 0 CHECK (\"account_deleted\" IN (0, 1)), \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), \"user_discovery_version\" BLOB NULL, \"user_discovery_excluded\" INTEGER NOT NULL DEFAULT 0 CHECK (\"user_discovery_excluded\" IN (0, 1)), \"user_discovery_manual_approved\" INTEGER NULL DEFAULT 0 CHECK (\"user_discovery_manual_approved\" IN (0, 1)), \"media_send_counter\" INTEGER NOT NULL DEFAULT 0, \"media_received_counter\" INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (\"user_id\"));" } ] }, { "name": "groups", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"groups\" (\"group_id\" TEXT NOT NULL, \"is_group_admin\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_group_admin\" IN (0, 1)), \"is_direct_chat\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_direct_chat\" IN (0, 1)), \"pinned\" INTEGER NOT NULL DEFAULT 0 CHECK (\"pinned\" IN (0, 1)), \"archived\" INTEGER NOT NULL DEFAULT 0 CHECK (\"archived\" IN (0, 1)), \"joined_group\" INTEGER NOT NULL DEFAULT 0 CHECK (\"joined_group\" IN (0, 1)), \"left_group\" INTEGER NOT NULL DEFAULT 0 CHECK (\"left_group\" IN (0, 1)), \"deleted_content\" INTEGER NOT NULL DEFAULT 0 CHECK (\"deleted_content\" IN (0, 1)), \"state_version_id\" INTEGER NOT NULL DEFAULT 0, \"state_encryption_key\" BLOB NULL, \"my_group_private_key\" BLOB NULL, \"group_name\" TEXT NOT NULL, \"draft_message\" TEXT NULL, \"total_media_counter\" INTEGER NOT NULL DEFAULT 0, \"also_best_friend\" INTEGER NOT NULL DEFAULT 0 CHECK (\"also_best_friend\" IN (0, 1)), \"delete_messages_after_milliseconds\" INTEGER NOT NULL DEFAULT 86400000, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), \"last_message_send\" INTEGER NULL, \"last_message_received\" INTEGER NULL, \"last_flame_counter_change\" INTEGER NULL, \"last_flame_sync\" INTEGER NULL, \"flame_counter\" INTEGER NOT NULL DEFAULT 0, \"max_flame_counter\" INTEGER NOT NULL DEFAULT 0, \"max_flame_counter_from\" INTEGER NULL, \"last_message_exchange\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"group_id\"));" } ] }, { "name": "media_files", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"media_files\" (\"media_id\" TEXT NOT NULL, \"type\" TEXT NOT NULL, \"upload_state\" TEXT NULL, \"download_state\" TEXT NULL, \"requires_authentication\" INTEGER NOT NULL DEFAULT 0 CHECK (\"requires_authentication\" IN (0, 1)), \"stored\" INTEGER NOT NULL DEFAULT 0 CHECK (\"stored\" IN (0, 1)), \"is_draft_media\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_draft_media\" IN (0, 1)), \"is_favorite\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_favorite\" IN (0, 1)), \"has_crop_analyzed\" INTEGER NOT NULL DEFAULT 0 CHECK (\"has_crop_analyzed\" IN (0, 1)), \"pre_progressing_process\" INTEGER NULL, \"reupload_requested_by\" TEXT NULL, \"display_limit_in_milliseconds\" INTEGER NULL, \"remove_audio\" INTEGER NULL CHECK (\"remove_audio\" IN (0, 1)), \"download_token\" BLOB NULL, \"encryption_key\" BLOB NULL, \"encryption_mac\" BLOB NULL, \"encryption_nonce\" BLOB NULL, \"stored_file_hash\" BLOB NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), \"created_at_month\" TEXT NULL, PRIMARY KEY (\"media_id\"));" } ] }, { "name": "messages", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"messages\" (\"group_id\" TEXT NOT NULL REFERENCES \"groups\" (group_id) ON DELETE CASCADE, \"message_id\" TEXT NOT NULL, \"sender_id\" INTEGER NULL REFERENCES contacts (user_id), \"type\" TEXT NOT NULL, \"content\" TEXT NULL, \"media_id\" TEXT NULL REFERENCES media_files (media_id) ON DELETE SET NULL, \"additional_message_data\" BLOB NULL, \"media_stored\" INTEGER NOT NULL DEFAULT 0 CHECK (\"media_stored\" IN (0, 1)), \"media_reopened\" INTEGER NOT NULL DEFAULT 0 CHECK (\"media_reopened\" IN (0, 1)), \"download_token\" BLOB NULL, \"quotes_message_id\" TEXT NULL, \"is_deleted_from_sender\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_deleted_from_sender\" IN (0, 1)), \"opened_at\" INTEGER NULL, \"opened_by_all\" INTEGER NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), \"modified_at\" INTEGER NULL, \"ack_by_user\" INTEGER NULL, \"ack_by_server\" INTEGER NULL, PRIMARY KEY (\"message_id\"));" } ] }, { "name": "message_histories", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"message_histories\" (\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"message_id\" TEXT NOT NULL REFERENCES messages (message_id) ON DELETE CASCADE, \"contact_id\" INTEGER NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"content\" TEXT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)));" } ] }, { "name": "reactions", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"reactions\" (\"message_id\" TEXT NOT NULL REFERENCES messages (message_id) ON DELETE CASCADE, \"emoji\" TEXT NOT NULL, \"sender_id\" INTEGER NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"message_id\", \"sender_id\", \"emoji\"));" } ] }, { "name": "group_members", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"group_members\" (\"group_id\" TEXT NOT NULL REFERENCES \"groups\" (group_id) ON DELETE CASCADE, \"contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id), \"member_state\" TEXT NULL, \"group_public_key\" BLOB NULL, \"last_chat_opened\" INTEGER NULL, \"last_type_indicator\" INTEGER NULL, \"last_message\" INTEGER NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"group_id\", \"contact_id\"));" } ] }, { "name": "receipts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"receipts\" (\"receipt_id\" TEXT NOT NULL, \"contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"message_id\" TEXT NULL REFERENCES messages (message_id) ON DELETE CASCADE, \"message\" BLOB NOT NULL, \"contact_will_sends_receipt\" INTEGER NOT NULL DEFAULT 1 CHECK (\"contact_will_sends_receipt\" IN (0, 1)), \"will_be_retried_by_media_upload\" INTEGER NOT NULL DEFAULT 0 CHECK (\"will_be_retried_by_media_upload\" IN (0, 1)), \"mark_for_retry\" INTEGER NULL, \"mark_for_retry_after_accepted\" INTEGER NULL, \"ack_by_server_at\" INTEGER NULL, \"retry_count\" INTEGER NOT NULL DEFAULT 0, \"last_retry\" INTEGER NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"receipt_id\"));" } ] }, { "name": "received_receipts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"received_receipts\" (\"receipt_id\" TEXT NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"receipt_id\"));" } ] }, { "name": "signal_identity_key_stores", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"signal_identity_key_stores\" (\"device_id\" INTEGER NOT NULL, \"name\" TEXT NOT NULL, \"identity_key\" BLOB NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"device_id\", \"name\"));" } ] }, { "name": "signal_pre_key_stores", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"signal_pre_key_stores\" (\"pre_key_id\" INTEGER NOT NULL, \"pre_key\" BLOB NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"pre_key_id\"));" } ] }, { "name": "signal_sender_key_stores", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"signal_sender_key_stores\" (\"sender_key_name\" TEXT NOT NULL, \"sender_key\" BLOB NOT NULL, PRIMARY KEY (\"sender_key_name\"));" } ] }, { "name": "signal_session_stores", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"signal_session_stores\" (\"device_id\" INTEGER NOT NULL, \"name\" TEXT NOT NULL, \"session_record\" BLOB NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"device_id\", \"name\"));" } ] }, { "name": "message_actions", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"message_actions\" (\"message_id\" TEXT NOT NULL REFERENCES messages (message_id) ON DELETE CASCADE, \"contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"type\" TEXT NOT NULL, \"action_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"message_id\", \"contact_id\", \"type\"));" } ] }, { "name": "group_histories", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"group_histories\" (\"group_history_id\" TEXT NOT NULL, \"group_id\" TEXT NOT NULL REFERENCES \"groups\" (group_id) ON DELETE CASCADE, \"contact_id\" INTEGER NULL REFERENCES contacts (user_id), \"affected_contact_id\" INTEGER NULL, \"old_group_name\" TEXT NULL, \"new_group_name\" TEXT NULL, \"new_delete_messages_after_milliseconds\" INTEGER NULL, \"type\" TEXT NOT NULL, \"action_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)), PRIMARY KEY (\"group_history_id\"));" } ] }, { "name": "key_verifications", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"key_verifications\" (\"verification_id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"type\" TEXT NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)));" } ] }, { "name": "verification_tokens", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"verification_tokens\" (\"token_id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"token\" BLOB NOT NULL, \"created_at\" INTEGER NOT NULL DEFAULT (CAST(strftime('%s', CURRENT_TIMESTAMP) AS INTEGER)));" } ] }, { "name": "user_discovery_announced_users", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"user_discovery_announced_users\" (\"announced_user_id\" INTEGER NOT NULL, \"announced_public_key\" BLOB NOT NULL, \"public_id\" INTEGER NOT NULL UNIQUE, \"username\" TEXT NULL, \"was_shown_to_the_user\" INTEGER NOT NULL DEFAULT 0 CHECK (\"was_shown_to_the_user\" IN (0, 1)), \"is_hidden\" INTEGER NOT NULL DEFAULT 0 CHECK (\"is_hidden\" IN (0, 1)), PRIMARY KEY (\"announced_user_id\"));" } ] }, { "name": "user_discovery_user_relations", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"user_discovery_user_relations\" (\"announced_user_id\" INTEGER NOT NULL REFERENCES user_discovery_announced_users (announced_user_id) ON DELETE CASCADE, \"from_contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"public_key_verified_timestamp\" INTEGER NULL, PRIMARY KEY (\"announced_user_id\", \"from_contact_id\"));" } ] }, { "name": "user_discovery_other_promotions", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"user_discovery_other_promotions\" (\"from_contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"promotion_id\" INTEGER NOT NULL, \"public_id\" INTEGER NOT NULL, \"threshold\" INTEGER NOT NULL, \"announcement_share\" BLOB NOT NULL, \"public_key_verified_timestamp\" INTEGER NULL, PRIMARY KEY (\"from_contact_id\", \"public_id\"));" } ] }, { "name": "user_discovery_own_promotions", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"user_discovery_own_promotions\" (\"version_id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"contact_id\" INTEGER NOT NULL REFERENCES contacts (user_id) ON DELETE CASCADE, \"promotion\" BLOB NOT NULL);" } ] }, { "name": "user_discovery_shares", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"user_discovery_shares\" (\"share_id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"share\" BLOB NOT NULL, \"contact_id\" INTEGER NULL REFERENCES contacts (user_id) ON DELETE CASCADE);" } ] }, { "name": "shortcuts", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"shortcuts\" (\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \"emoji\" TEXT NOT NULL UNIQUE, \"usage_counter\" INTEGER NOT NULL DEFAULT 0);" } ] }, { "name": "shortcut_members", "sql": [ { "dialect": "sqlite", "sql": "CREATE TABLE IF NOT EXISTS \"shortcut_members\" (\"shortcut_id\" INTEGER NOT NULL REFERENCES shortcuts (id) ON DELETE CASCADE, \"group_id\" TEXT NOT NULL REFERENCES \"groups\" (group_id) ON DELETE CASCADE, PRIMARY KEY (\"shortcut_id\", \"group_id\"));" } ] } ] }