{
  "formatVersion": 1,
  "database": {
    "version": 8,
    "identityHash": "48d41bd13698c29cc5e0810934187c0e",
    "entities": [
      {
        "tableName": "users",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `username` TEXT, `name` TEXT, `status` TEXT NOT NULL, `utcOffset` REAL, PRIMARY KEY(`id`))",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "username",
            "columnName": "username",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "status",
            "columnName": "status",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "utcOffset",
            "columnName": "utcOffset",
            "affinity": "REAL",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": false
        },
        "indices": [
          {
            "name": "index_users_username",
            "unique": false,
            "columnNames": [
              "username"
            ],
            "createSql": "CREATE  INDEX `index_users_username` ON `${TABLE_NAME}` (`username`)"
          }
        ],
        "foreignKeys": []
      },
      {
        "tableName": "chatrooms",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `subscriptionId` TEXT NOT NULL, `type` TEXT NOT NULL, `name` TEXT NOT NULL, `fullname` TEXT, `userId` TEXT, `ownerId` TEXT, `readonly` INTEGER, `isDefault` INTEGER, `favorite` INTEGER, `open` INTEGER NOT NULL, `alert` INTEGER NOT NULL, `unread` INTEGER NOT NULL, `userMentions` INTEGER, `groupMentions` INTEGER, `updatedAt` INTEGER, `timestamp` INTEGER, `lastSeen` INTEGER, `lastMessageText` TEXT, `lastMessageUserId` TEXT, `lastMessageTimestamp` INTEGER, `broadcast` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`ownerId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION , FOREIGN KEY(`userId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION , FOREIGN KEY(`lastMessageUserId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "subscriptionId",
            "columnName": "subscriptionId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "name",
            "columnName": "name",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "fullname",
            "columnName": "fullname",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "userId",
            "columnName": "userId",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "ownerId",
            "columnName": "ownerId",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "readonly",
            "columnName": "readonly",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "isDefault",
            "columnName": "isDefault",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "favorite",
            "columnName": "favorite",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "open",
            "columnName": "open",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "alert",
            "columnName": "alert",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "unread",
            "columnName": "unread",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "userMentions",
            "columnName": "userMentions",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "groupMentions",
            "columnName": "groupMentions",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "updatedAt",
            "columnName": "updatedAt",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "timestamp",
            "columnName": "timestamp",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "lastSeen",
            "columnName": "lastSeen",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "lastMessageText",
            "columnName": "lastMessageText",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "lastMessageUserId",
            "columnName": "lastMessageUserId",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "lastMessageTimestamp",
            "columnName": "lastMessageTimestamp",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "broadcast",
            "columnName": "broadcast",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": false
        },
        "indices": [
          {
            "name": "index_chatrooms_userId",
            "unique": false,
            "columnNames": [
              "userId"
            ],
            "createSql": "CREATE  INDEX `index_chatrooms_userId` ON `${TABLE_NAME}` (`userId`)"
          },
          {
            "name": "index_chatrooms_ownerId",
            "unique": false,
            "columnNames": [
              "ownerId"
            ],
            "createSql": "CREATE  INDEX `index_chatrooms_ownerId` ON `${TABLE_NAME}` (`ownerId`)"
          },
          {
            "name": "index_chatrooms_subscriptionId",
            "unique": true,
            "columnNames": [
              "subscriptionId"
            ],
            "createSql": "CREATE UNIQUE INDEX `index_chatrooms_subscriptionId` ON `${TABLE_NAME}` (`subscriptionId`)"
          },
          {
            "name": "index_chatrooms_updatedAt",
            "unique": false,
            "columnNames": [
              "updatedAt"
            ],
            "createSql": "CREATE  INDEX `index_chatrooms_updatedAt` ON `${TABLE_NAME}` (`updatedAt`)"
          },
          {
            "name": "index_chatrooms_lastMessageUserId",
            "unique": false,
            "columnNames": [
              "lastMessageUserId"
            ],
            "createSql": "CREATE  INDEX `index_chatrooms_lastMessageUserId` ON `${TABLE_NAME}` (`lastMessageUserId`)"
          }
        ],
        "foreignKeys": [
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "ownerId"
            ],
            "referencedColumns": [
              "id"
            ]
          },
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "userId"
            ],
            "referencedColumns": [
              "id"
            ]
          },
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "lastMessageUserId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "messages",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `roomId` TEXT NOT NULL, `message` TEXT NOT NULL, `timestamp` INTEGER NOT NULL, `senderId` TEXT, `updatedAt` INTEGER, `editedAt` INTEGER, `editedBy` TEXT, `senderAlias` TEXT, `avatar` TEXT, `type` TEXT, `groupable` INTEGER NOT NULL, `parseUrls` INTEGER NOT NULL, `pinned` INTEGER NOT NULL, `role` TEXT, `synced` INTEGER NOT NULL, `unread` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`senderId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION , FOREIGN KEY(`editedBy`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "roomId",
            "columnName": "roomId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "message",
            "columnName": "message",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "timestamp",
            "columnName": "timestamp",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "senderId",
            "columnName": "senderId",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "updatedAt",
            "columnName": "updatedAt",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "editedAt",
            "columnName": "editedAt",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "editedBy",
            "columnName": "editedBy",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "senderAlias",
            "columnName": "senderAlias",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "avatar",
            "columnName": "avatar",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "groupable",
            "columnName": "groupable",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "parseUrls",
            "columnName": "parseUrls",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "pinned",
            "columnName": "pinned",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "role",
            "columnName": "role",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "synced",
            "columnName": "synced",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "unread",
            "columnName": "unread",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": [
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "senderId"
            ],
            "referencedColumns": [
              "id"
            ]
          },
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "editedBy"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "message_favorites",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `userId` TEXT NOT NULL, PRIMARY KEY(`messageId`, `userId`), FOREIGN KEY(`messageId`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`userId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
        "fields": [
          {
            "fieldPath": "messageId",
            "columnName": "messageId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "userId",
            "columnName": "userId",
            "affinity": "TEXT",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "messageId",
            "userId"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "messageId"
            ],
            "referencedColumns": [
              "id"
            ]
          },
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "userId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "message_mentions",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `userId` TEXT NOT NULL, PRIMARY KEY(`messageId`, `userId`), FOREIGN KEY(`messageId`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`userId`) REFERENCES `users`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )",
        "fields": [
          {
            "fieldPath": "messageId",
            "columnName": "messageId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "userId",
            "columnName": "userId",
            "affinity": "TEXT",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "messageId",
            "userId"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "messageId"
            ],
            "referencedColumns": [
              "id"
            ]
          },
          {
            "table": "users",
            "onDelete": "NO ACTION",
            "onUpdate": "NO ACTION",
            "columns": [
              "userId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "message_channels",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`messageId` TEXT NOT NULL, `roomId` TEXT NOT NULL, `roomName` TEXT, PRIMARY KEY(`messageId`, `roomId`), FOREIGN KEY(`messageId`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "messageId",
            "columnName": "messageId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "roomId",
            "columnName": "roomId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "roomName",
            "columnName": "roomName",
            "affinity": "TEXT",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "messageId",
            "roomId"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "messageId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "attachments",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`_id` TEXT NOT NULL, `message_id` TEXT NOT NULL, `title` TEXT, `type` TEXT, `description` TEXT, `text` TEXT, `author_name` TEXT, `author_icon` TEXT, `author_link` TEXT, `thumb_url` TEXT, `color` TEXT, `fallback` TEXT, `title_link` TEXT, `title_link_download` INTEGER NOT NULL, `image_url` TEXT, `image_type` TEXT, `image_size` INTEGER, `video_url` TEXT, `video_type` TEXT, `video_size` INTEGER, `audio_url` TEXT, `audio_type` TEXT, `audio_size` INTEGER, `message_link` TEXT, `timestamp` INTEGER, `has_actions` INTEGER NOT NULL, `button_alignment` TEXT, PRIMARY KEY(`_id`), FOREIGN KEY(`message_id`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "_id",
            "columnName": "_id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "messageId",
            "columnName": "message_id",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "description",
            "columnName": "description",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "text",
            "columnName": "text",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "authorName",
            "columnName": "author_name",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "authorIcon",
            "columnName": "author_icon",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "authorLink",
            "columnName": "author_link",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "thumbUrl",
            "columnName": "thumb_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "color",
            "columnName": "color",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "fallback",
            "columnName": "fallback",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "titleLink",
            "columnName": "title_link",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "titleLinkDownload",
            "columnName": "title_link_download",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "imageUrl",
            "columnName": "image_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "imageType",
            "columnName": "image_type",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "imageSize",
            "columnName": "image_size",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "videoUrl",
            "columnName": "video_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "videoType",
            "columnName": "video_type",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "videoSize",
            "columnName": "video_size",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "audioUrl",
            "columnName": "audio_url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "audioType",
            "columnName": "audio_type",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "audioSize",
            "columnName": "audio_size",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "messageLink",
            "columnName": "message_link",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "timestamp",
            "columnName": "timestamp",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "hasActions",
            "columnName": "has_actions",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "buttonAlignment",
            "columnName": "button_alignment",
            "affinity": "TEXT",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "_id"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "message_id"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "attachment_fields",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `attachmentId` TEXT NOT NULL, `title` TEXT NOT NULL, `value` TEXT NOT NULL, FOREIGN KEY(`attachmentId`) REFERENCES `attachments`(`_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "attachmentId",
            "columnName": "attachmentId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "value",
            "columnName": "value",
            "affinity": "TEXT",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [
          {
            "name": "index_attachment_fields_attachmentId",
            "unique": false,
            "columnNames": [
              "attachmentId"
            ],
            "createSql": "CREATE  INDEX `index_attachment_fields_attachmentId` ON `${TABLE_NAME}` (`attachmentId`)"
          }
        ],
        "foreignKeys": [
          {
            "table": "attachments",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "attachmentId"
            ],
            "referencedColumns": [
              "_id"
            ]
          }
        ]
      },
      {
        "tableName": "attachment_action",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `attachmentId` TEXT NOT NULL, `type` TEXT NOT NULL, `text` TEXT, `url` TEXT, `isWebView` INTEGER, `webViewHeightRatio` TEXT, `imageUrl` TEXT, `message` TEXT, `isMessageInChatWindow` INTEGER, FOREIGN KEY(`attachmentId`) REFERENCES `attachments`(`_id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "id",
            "columnName": "id",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "attachmentId",
            "columnName": "attachmentId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "type",
            "columnName": "type",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "text",
            "columnName": "text",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "url",
            "columnName": "url",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "isWebView",
            "columnName": "isWebView",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "webViewHeightRatio",
            "columnName": "webViewHeightRatio",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "imageUrl",
            "columnName": "imageUrl",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "message",
            "columnName": "message",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "isMessageInChatWindow",
            "columnName": "isMessageInChatWindow",
            "affinity": "INTEGER",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "id"
          ],
          "autoGenerate": true
        },
        "indices": [
          {
            "name": "index_attachment_action_attachmentId",
            "unique": false,
            "columnNames": [
              "attachmentId"
            ],
            "createSql": "CREATE  INDEX `index_attachment_action_attachmentId` ON `${TABLE_NAME}` (`attachmentId`)"
          }
        ],
        "foreignKeys": [
          {
            "table": "attachments",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "attachmentId"
            ],
            "referencedColumns": [
              "_id"
            ]
          }
        ]
      },
      {
        "tableName": "urls",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`urlId` INTEGER PRIMARY KEY AUTOINCREMENT, `messageId` TEXT NOT NULL, `url` TEXT NOT NULL, `hostname` TEXT, `title` TEXT, `description` TEXT, `imageUrl` TEXT, FOREIGN KEY(`messageId`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "urlId",
            "columnName": "urlId",
            "affinity": "INTEGER",
            "notNull": false
          },
          {
            "fieldPath": "messageId",
            "columnName": "messageId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "url",
            "columnName": "url",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "hostname",
            "columnName": "hostname",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "title",
            "columnName": "title",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "description",
            "columnName": "description",
            "affinity": "TEXT",
            "notNull": false
          },
          {
            "fieldPath": "imageUrl",
            "columnName": "imageUrl",
            "affinity": "TEXT",
            "notNull": false
          }
        ],
        "primaryKey": {
          "columnNames": [
            "urlId"
          ],
          "autoGenerate": true
        },
        "indices": [
          {
            "name": "index_urls_messageId",
            "unique": false,
            "columnNames": [
              "messageId"
            ],
            "createSql": "CREATE  INDEX `index_urls_messageId` ON `${TABLE_NAME}` (`messageId`)"
          }
        ],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "messageId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "reactions",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`reaction` TEXT NOT NULL, `messageId` TEXT NOT NULL, `count` INTEGER NOT NULL, `usernames` TEXT NOT NULL, PRIMARY KEY(`reaction`), FOREIGN KEY(`messageId`) REFERENCES `messages`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
        "fields": [
          {
            "fieldPath": "reaction",
            "columnName": "reaction",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "messageId",
            "columnName": "messageId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "count",
            "columnName": "count",
            "affinity": "INTEGER",
            "notNull": true
          },
          {
            "fieldPath": "usernames",
            "columnName": "usernames",
            "affinity": "TEXT",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "reaction"
          ],
          "autoGenerate": false
        },
        "indices": [
          {
            "name": "index_reactions_messageId",
            "unique": false,
            "columnNames": [
              "messageId"
            ],
            "createSql": "CREATE  INDEX `index_reactions_messageId` ON `${TABLE_NAME}` (`messageId`)"
          }
        ],
        "foreignKeys": [
          {
            "table": "messages",
            "onDelete": "CASCADE",
            "onUpdate": "NO ACTION",
            "columns": [
              "messageId"
            ],
            "referencedColumns": [
              "id"
            ]
          }
        ]
      },
      {
        "tableName": "messages_sync",
        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`roomId` TEXT NOT NULL, `timestamp` INTEGER NOT NULL, PRIMARY KEY(`roomId`))",
        "fields": [
          {
            "fieldPath": "roomId",
            "columnName": "roomId",
            "affinity": "TEXT",
            "notNull": true
          },
          {
            "fieldPath": "timestamp",
            "columnName": "timestamp",
            "affinity": "INTEGER",
            "notNull": true
          }
        ],
        "primaryKey": {
          "columnNames": [
            "roomId"
          ],
          "autoGenerate": false
        },
        "indices": [],
        "foreignKeys": []
      }
    ],
    "setupQueries": [
      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"48d41bd13698c29cc5e0810934187c0e\")"
    ]
  }
}