"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `nostrEventId` TEXT NOT NULL, `unsignedNostrEventId` INTEGER, `isAccepted` INTEGER NOT NULL, `isSync` INTEGER NOT NULL, `relayURL` TEXT NOT NULL, `messages` TEXT, FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`unsignedNostrEventId`) REFERENCES `UnsignedNostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE INDEX IF NOT EXISTS `index_BroadcastNostrEventReceipt_isAccepted` ON `${TABLE_NAME}` (`isAccepted`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"UnsignedNostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"unsignedNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"BroadcastNostrEventRequest",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `nostrEventId` TEXT NOT NULL, `unsignedNostrEventId` INTEGER, `status` TEXT NOT NULL, `relayURL` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`unsignedNostrEventId`) REFERENCES `UnsignedNostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE INDEX IF NOT EXISTS `index_BroadcastNostrEventRequest_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
},
{
"name":"index_BroadcastNostrEventRequest_status",
"unique":false,
"columnNames":[
"status"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_BroadcastNostrEventRequest_status` ON `${TABLE_NAME}` (`status`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"UnsignedNostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"unsignedNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"Connection",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`sourcePublicKey` TEXT NOT NULL, `destinationPublicKey` TEXT NOT NULL, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`sourcePublicKey`, `destinationPublicKey`), FOREIGN KEY(`sourcePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`destinationPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `senderPublicKey` TEXT NOT NULL, `isUserMessage` INTEGER NOT NULL, `giftWrapPayloadId` TEXT, `marmotGroupEventId` TEXT, `marmotInnerEventId` TEXT, `chatRoomId` TEXT NOT NULL, `replyToMessageId` INTEGER, `quotedMessageId` INTEGER, `content` TEXT NOT NULL, `messageType` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, FOREIGN KEY(`chatRoomId`) REFERENCES `ChatRoom`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`giftWrapPayloadId`) REFERENCES `GiftWrapPayload`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`marmotGroupEventId`) REFERENCES `MarmotGroupEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`marmotInnerEventId`) REFERENCES `MarmotInnerEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `chatMessageId` INTEGER NOT NULL, `broadcastNostrEventRequestId` INTEGER NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, FOREIGN KEY(`chatMessageId`) REFERENCES `ChatMessage`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`broadcastNostrEventRequestId`) REFERENCES `BroadcastNostrEventRequest`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `chatMessageId` INTEGER NOT NULL, `broadcastNostrEventReceiptId` INTEGER NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, FOREIGN KEY(`chatMessageId`) REFERENCES `ChatMessage`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`broadcastNostrEventReceiptId`) REFERENCES `BroadcastNostrEventReceipt`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"chatMessageId",
"columnName":"chatMessageId",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"broadcastNostrEventReceiptId",
"columnName":"broadcastNostrEventReceiptId",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
}
],
"primaryKey":{
"autoGenerate":true,
"columnNames":[
"id"
]
},
"foreignKeys":[
{
"table":"ChatMessage",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"chatMessageId"
],
"referencedColumns":[
"id"
]
},
{
"table":"BroadcastNostrEventReceipt",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"broadcastNostrEventReceiptId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"ChatMessageNostrEventRelation",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `chatMessageId` INTEGER NOT NULL, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, FOREIGN KEY(`chatMessageId`) REFERENCES `ChatMessage`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `userPublicKey` TEXT NOT NULL, `subject` TEXT, `mlsGroupState` TEXT, `initialGiftWrapPayloadId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`userPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`initialGiftWrapPayloadId`) REFERENCES `GiftWrapPayload`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `kind` INTEGER NOT NULL, `receiverPublicKey` TEXT NOT NULL, `receiverRelayHit` TEXT, `content` TEXT NOT NULL, `signature` TEXT NOT NULL, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `kind` INTEGER NOT NULL, `tags` TEXT NOT NULL, `content` TEXT NOT NULL, `signature` TEXT NOT NULL, `giftWrapMessageId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`giftWrapMessageId`) REFERENCES `GiftWrapMessage`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `chatRoomId` TEXT NOT NULL, `kind` INTEGER NOT NULL, `tags` TEXT NOT NULL, `content` TEXT NOT NULL, `quotedEventId` TEXT, `giftWrapSealId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`giftWrapSealId`) REFERENCES `GiftWrapSeal`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`replyingNostrEventId` TEXT NOT NULL, `inReplyToNostrEventId` TEXT NOT NULL, `inReplyToProfilePublicKey` TEXT, `inReplyToRootNostrEventId` TEXT, `inReplyToRootProfilePublicKey` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`replyingNostrEventId`, `inReplyToNostrEventId`), FOREIGN KEY(`inReplyToProfilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`inReplyToRootProfilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`replyingNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`inReplyToNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`inReplyToRootNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `userPublicKey` TEXT NOT NULL, `peerKeyPackageEventId` TEXT NOT NULL, `chatRoomId` TEXT NOT NULL, `isOneMemberInitialGroupCreation` INTEGER NOT NULL, `commitBytes` BLOB NOT NULL, `welcomeBytes` BLOB, `groupInfoBytes` BLOB, `framedCommitBytes` BLOB NOT NULL, `preCommitExporterSecret` BLOB NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`))",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `userPublicKey` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `chatRoomId` TEXT NOT NULL, `signature` TEXT NOT NULL, `encryptedContent` TEXT NOT NULL, `expiresAt` INTEGER, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `chatRoomId` TEXT NOT NULL, `kind` INTEGER NOT NULL, `tags` TEXT NOT NULL, `content` TEXT NOT NULL, `quotedEventId` TEXT, `marmotGroupEventId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`marmotGroupEventId`) REFERENCES `MarmotGroupEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `tlsEncodedMarmotKeyPackage` BLOB NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`publicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `publicKey` TEXT NOT NULL, `tlsEncodedMarmotKeyPackage` BLOB NOT NULL, `ncryptsecInitPrivateKey` TEXT NOT NULL, `ncryptsecEncryptionPrivateKey` TEXT NOT NULL, `ncryptsecSignaturePrivateKey` TEXT NOT NULL, `consumed` INTEGER NOT NULL, `rotated` INTEGER NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`))",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`chatRoomId` TEXT NOT NULL, `epoch` INTEGER NOT NULL, `senderDataSecret` BLOB NOT NULL, `encryptionSecret` BLOB NOT NULL, `leafCount` INTEGER NOT NULL, `exporterSecret` BLOB NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, PRIMARY KEY(`chatRoomId`, `epoch`), FOREIGN KEY(`chatRoomId`) REFERENCES `ChatRoom`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `mentionedPublicKey` TEXT NOT NULL, `mentioningNostrEventId` TEXT, `relayUrl` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, FOREIGN KEY(`mentionedPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`mentioningNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"mentionedPublicKey",
"columnName":"mentionedPublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"mentioningNostrEventId",
"columnName":"mentioningNostrEventId",
"affinity":"TEXT"
},
{
"fieldPath":"relayUrl",
"columnName":"relayUrl",
"affinity":"TEXT"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":true,
"columnNames":[
"id"
]
},
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"mentionedPublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"mentioningNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"NegentropySynchronizeRequest",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `uuid` TEXT NOT NULL, `purpose` TEXT NOT NULL, `status` TEXT NOT NULL, `relayURL` TEXT NOT NULL, `isRecommendedRelay` INTEGER NOT NULL, `level` INTEGER NOT NULL, `synchronizationFilter` TEXT NOT NULL, `nostrEventId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE INDEX IF NOT EXISTS `index_NegentropySynchronizeRequest_status` ON `${TABLE_NAME}` (`status`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"NegentropySynchronizeResult",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `relayURL` TEXT NOT NULL, `status` TEXT NOT NULL, `negentropySynchronizeRequestId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`negentropySynchronizeRequestId`) REFERENCES `SynchronizeNostrEventResult`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"relayURL",
"columnName":"relayURL",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"status",
"columnName":"status",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"negentropySynchronizeRequestId",
"columnName":"negentropySynchronizeRequestId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"id"
]
},
"foreignKeys":[
{
"table":"SynchronizeNostrEventResult",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"negentropySynchronizeRequestId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"NostrEvent",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `pubKey` TEXT NOT NULL, `kind` INTEGER NOT NULL, `tags` TEXT NOT NULL, `content` TEXT NOT NULL, `sig` TEXT NOT NULL, `relayUrl` TEXT, `quotedNostrEventId` TEXT, `quotedAuthorPublicKey` TEXT, `inReplyToNostrEventId` TEXT, `inReplyToAuthorPublicKey` TEXT, `inReplyToRootNostrEventId` TEXT, `inReplyToRootAuthorPublicKey` TEXT, `repostedNostrEventId` TEXT, `repostedAuthorPublicKey` TEXT, `unsignedNostrEventId` INTEGER, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`))",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"pubKey",
"columnName":"pubKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"kind",
"columnName":"kind",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"tags",
"columnName":"tags",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"content",
"columnName":"content",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"sig",
"columnName":"sig",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"relayUrl",
"columnName":"relayUrl",
"affinity":"TEXT"
},
{
"fieldPath":"quotedNostrEventId",
"columnName":"quotedNostrEventId",
"affinity":"TEXT"
},
{
"fieldPath":"quotedAuthorPublicKey",
"columnName":"quotedAuthorPublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"inReplyToNostrEventId",
"columnName":"inReplyToNostrEventId",
"affinity":"TEXT"
},
{
"fieldPath":"inReplyToAuthorPublicKey",
"columnName":"inReplyToAuthorPublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"inReplyToRootNostrEventId",
"columnName":"inReplyToRootNostrEventId",
"affinity":"TEXT"
},
{
"fieldPath":"inReplyToRootAuthorPublicKey",
"columnName":"inReplyToRootAuthorPublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"repostedNostrEventId",
"columnName":"repostedNostrEventId",
"affinity":"TEXT"
},
{
"fieldPath":"repostedAuthorPublicKey",
"columnName":"repostedAuthorPublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"unsignedNostrEventId",
"columnName":"unsignedNostrEventId",
"affinity":"INTEGER"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"id"
]
},
"indices":[
{
"name":"index_NostrEvent_kind",
"unique":false,
"columnNames":[
"kind"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEvent_kind` ON `${TABLE_NAME}` (`kind`)"
},
{
"name":"index_NostrEvent_pubKey",
"unique":false,
"columnNames":[
"pubKey"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEvent_pubKey` ON `${TABLE_NAME}` (`pubKey`)"
},
{
"name":"index_NostrEvent_quotedNostrEventId",
"unique":false,
"columnNames":[
"quotedNostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEvent_quotedNostrEventId` ON `${TABLE_NAME}` (`quotedNostrEventId`)"
},
{
"name":"index_NostrEvent_inReplyToNostrEventId",
"unique":false,
"columnNames":[
"inReplyToNostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEvent_inReplyToNostrEventId` ON `${TABLE_NAME}` (`inReplyToNostrEventId`)"
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEvent_inReplyToRootNostrEventId` ON `${TABLE_NAME}` (`inReplyToRootNostrEventId`)"
}
]
},
{
"tableName":"NostrEventRelay",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`relayURL` TEXT NOT NULL, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`nostrEventId`, `relayURL`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"relayURL",
"columnName":"relayURL",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"nostrEventId",
"columnName":"nostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"nostrEventId",
"relayURL"
]
},
"indices":[
{
"name":"index_NostrEventRelay_relayURL",
"unique":false,
"columnNames":[
"relayURL"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_NostrEventRelay_relayURL` ON `${TABLE_NAME}` (`relayURL`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"Participant",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `participantPublicKey` TEXT NOT NULL, `chatRoomId` TEXT NOT NULL, `relayHint` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, FOREIGN KEY(`participantPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`chatRoomId`) REFERENCES `ChatRoom`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"participantPublicKey",
"columnName":"participantPublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"chatRoomId",
"columnName":"chatRoomId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"relayHint",
"columnName":"relayHint",
"affinity":"TEXT"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":true,
"columnNames":[
"id"
]
},
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"participantPublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"ChatRoom",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"chatRoomId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"Post",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `repostId` TEXT, `quote` TEXT, `content` TEXT NOT NULL, `nostrEventId` TEXT NOT NULL, `replyToId` TEXT, `profilePublicKey` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`profilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`replyToId`) REFERENCES `Post`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`repostId`) REFERENCES `Post`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"repostId",
"columnName":"repostId",
"affinity":"TEXT"
},
{
"fieldPath":"quote",
"columnName":"quote",
"affinity":"TEXT"
},
{
"fieldPath":"content",
"columnName":"content",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"nostrEventId",
"columnName":"nostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"replyToId",
"columnName":"replyToId",
"affinity":"TEXT"
},
{
"fieldPath":"profilePublicKey",
"columnName":"profilePublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"id"
]
},
"indices":[
{
"name":"index_Post_profilePublicKey",
"unique":false,
"columnNames":[
"profilePublicKey"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Post_profilePublicKey` ON `${TABLE_NAME}` (`profilePublicKey`)"
},
{
"name":"index_Post_nostrEventId",
"unique":false,
"columnNames":[
"nostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Post_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
},
{
"name":"index_Post_replyToId",
"unique":false,
"columnNames":[
"replyToId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Post_replyToId` ON `${TABLE_NAME}` (`replyToId`)"
},
{
"name":"index_Post_repostId",
"unique":false,
"columnNames":[
"repostId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Post_repostId` ON `${TABLE_NAME}` (`repostId`)"
}
],
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"profilePublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"Post",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"replyToId"
],
"referencedColumns":[
"id"
]
},
{
"table":"Post",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"repostId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"Profile",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`publicKey` TEXT NOT NULL, `userName` TEXT, `displayName` TEXT, `picture` TEXT, `banner` TEXT, `website` TEXT, `about` TEXT, `bot` INTEGER, `pronouns` TEXT, `nip05` TEXT, `domain` TEXT, `lud06` TEXT, `lud16` TEXT, `twitter` TEXT, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`publicKey`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"publicKey",
"columnName":"publicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"userName",
"columnName":"userName",
"affinity":"TEXT"
},
{
"fieldPath":"displayName",
"columnName":"displayName",
"affinity":"TEXT"
},
{
"fieldPath":"picture",
"columnName":"picture",
"affinity":"TEXT"
},
{
"fieldPath":"banner",
"columnName":"banner",
"affinity":"TEXT"
},
{
"fieldPath":"website",
"columnName":"website",
"affinity":"TEXT"
},
{
"fieldPath":"about",
"columnName":"about",
"affinity":"TEXT"
},
{
"fieldPath":"bot",
"columnName":"bot",
"affinity":"INTEGER"
},
{
"fieldPath":"pronouns",
"columnName":"pronouns",
"affinity":"TEXT"
},
{
"fieldPath":"nip05",
"columnName":"nip05",
"affinity":"TEXT"
},
{
"fieldPath":"domain",
"columnName":"domain",
"affinity":"TEXT"
},
{
"fieldPath":"lud06",
"columnName":"lud06",
"affinity":"TEXT"
},
{
"fieldPath":"lud16",
"columnName":"lud16",
"affinity":"TEXT"
},
{
"fieldPath":"twitter",
"columnName":"twitter",
"affinity":"TEXT"
},
{
"fieldPath":"nostrEventId",
"columnName":"nostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"publicKey"
]
},
"indices":[
{
"name":"index_Profile_nostrEventId",
"unique":false,
"columnNames":[
"nostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Profile_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"QuotedRelation",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`quotingNostrEventId` TEXT NOT NULL, `quotedNostrEventId` TEXT NOT NULL, `quotedProfilePublicKey` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`quotingNostrEventId`, `quotedNostrEventId`), FOREIGN KEY(`quotedProfilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`quotingNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`quotedNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"quotingNostrEventId",
"columnName":"quotingNostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"quotedNostrEventId",
"columnName":"quotedNostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"quotedProfilePublicKey",
"columnName":"quotedProfilePublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"quotingNostrEventId",
"quotedNostrEventId"
]
},
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"quotedProfilePublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"quotingNostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"quotedNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"Reaction",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `content` TEXT NOT NULL, `nostrEventId` TEXT NOT NULL, `replyToId` TEXT NOT NULL, `profilePublicKey` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`profilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`replyToId`) REFERENCES `Post`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"content",
"columnName":"content",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"nostrEventId",
"columnName":"nostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"replyToId",
"columnName":"replyToId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"profilePublicKey",
"columnName":"profilePublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"id"
]
},
"indices":[
{
"name":"index_Reaction_profilePublicKey",
"unique":false,
"columnNames":[
"profilePublicKey"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Reaction_profilePublicKey` ON `${TABLE_NAME}` (`profilePublicKey`)"
},
{
"name":"index_Reaction_nostrEventId",
"unique":false,
"columnNames":[
"nostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Reaction_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
},
{
"name":"index_Reaction_replyToId",
"unique":false,
"columnNames":[
"replyToId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Reaction_replyToId` ON `${TABLE_NAME}` (`replyToId`)"
}
],
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"profilePublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"Post",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"replyToId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"RecentSearch",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`query` TEXT NOT NULL, `synchronizationFilters` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`query`))",
"fields":[
{
"fieldPath":"query",
"columnName":"query",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"synchronizationFilters",
"columnName":"synchronizationFilters",
"affinity":"TEXT"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"query"
]
}
},
{
"tableName":"Relay",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`publicKey` TEXT NOT NULL, `type` TEXT NOT NULL, `url` TEXT NOT NULL, `read` INTEGER NOT NULL, `write` INTEGER NOT NULL, PRIMARY KEY(`publicKey`, `type`, `url`))",
"fields":[
{
"fieldPath":"publicKey",
"columnName":"publicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"type",
"columnName":"type",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"url",
"columnName":"url",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"read",
"columnName":"read",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"write",
"columnName":"write",
"affinity":"INTEGER",
"notNull":true
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"publicKey",
"type",
"url"
]
}
},
{
"tableName":"RepostedRelation",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`repostingNostrEventId` TEXT NOT NULL, `repostedNostrEventId` TEXT NOT NULL, `repostedProfilePublicKey` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`repostingNostrEventId`, `repostedNostrEventId`), FOREIGN KEY(`repostedProfilePublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`repostedNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`repostingNostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"repostingNostrEventId",
"columnName":"repostingNostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"repostedNostrEventId",
"columnName":"repostedNostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"repostedProfilePublicKey",
"columnName":"repostedProfilePublicKey",
"affinity":"TEXT"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"repostingNostrEventId",
"repostedNostrEventId"
]
},
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"repostedProfilePublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"repostedNostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"repostingNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"SynchronizeNostrEventRequest",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `purpose` TEXT NOT NULL, `status` TEXT NOT NULL, `relayURL` TEXT NOT NULL, `isRecommendedRelay` INTEGER NOT NULL, `level` INTEGER NOT NULL, `synchronizationFilters` TEXT NOT NULL, `nostrEventId` TEXT, `unsignedNostrEventId` INTEGER, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`unsignedNostrEventId`) REFERENCES `UnsignedNostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE INDEX IF NOT EXISTS `index_SynchronizeNostrEventRequest_status` ON `${TABLE_NAME}` (`status`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"UnsignedNostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"unsignedNostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"SynchronizeNostrEventResult",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `relayURL` TEXT NOT NULL, `nostrEventId` TEXT, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"createSql":"CREATE INDEX IF NOT EXISTS `index_SynchronizeNostrEventResult_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
}
],
"foreignKeys":[
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
}
]
},
{
"tableName":"UnsignedNostrEvent",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `pubKey` TEXT NOT NULL, `kind` INTEGER NOT NULL, `tags` TEXT NOT NULL, `privateTags` TEXT, `content` TEXT NOT NULL, `signedAt` INTEGER, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER)",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"pubKey",
"columnName":"pubKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"kind",
"columnName":"kind",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"tags",
"columnName":"tags",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"privateTags",
"columnName":"privateTags",
"affinity":"TEXT"
},
{
"fieldPath":"content",
"columnName":"content",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"signedAt",
"columnName":"signedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":true,
"columnNames":[
"id"
]
},
"indices":[
{
"name":"index_UnsignedNostrEvent_pubKey",
"unique":false,
"columnNames":[
"pubKey"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_UnsignedNostrEvent_pubKey` ON `${TABLE_NAME}` (`pubKey`)"
},
{
"name":"index_UnsignedNostrEvent_kind",
"unique":false,
"columnNames":[
"kind"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_UnsignedNostrEvent_kind` ON `${TABLE_NAME}` (`kind`)"
}
]
},
{
"tableName":"Zap",
"createSql":"CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `postId` TEXT NOT NULL, `senderPublicKey` TEXT NOT NULL, `receiverPublicKey` TEXT NOT NULL, `message` TEXT, `invoice` TEXT, `amountInMillisatoshis` INTEGER, `nostrEventId` TEXT NOT NULL, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `viewedAt` INTEGER, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`), FOREIGN KEY(`senderPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`receiverPublicKey`) REFERENCES `Profile`(`publicKey`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`nostrEventId`) REFERENCES `NostrEvent`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`postId`) REFERENCES `Post`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
"fields":[
{
"fieldPath":"id",
"columnName":"id",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"postId",
"columnName":"postId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"senderPublicKey",
"columnName":"senderPublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"receiverPublicKey",
"columnName":"receiverPublicKey",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"message",
"columnName":"message",
"affinity":"TEXT"
},
{
"fieldPath":"invoice",
"columnName":"invoice",
"affinity":"TEXT"
},
{
"fieldPath":"amountInMillisatoshis",
"columnName":"amountInMillisatoshis",
"affinity":"INTEGER"
},
{
"fieldPath":"nostrEventId",
"columnName":"nostrEventId",
"affinity":"TEXT",
"notNull":true
},
{
"fieldPath":"createdAt",
"columnName":"createdAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"updatedAt",
"columnName":"updatedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"savedAt",
"columnName":"savedAt",
"affinity":"INTEGER",
"notNull":true
},
{
"fieldPath":"viewedAt",
"columnName":"viewedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"deletedAt",
"columnName":"deletedAt",
"affinity":"INTEGER"
},
{
"fieldPath":"broadcastedAt",
"columnName":"broadcastedAt",
"affinity":"INTEGER"
}
],
"primaryKey":{
"autoGenerate":false,
"columnNames":[
"id"
]
},
"indices":[
{
"name":"index_Zap_senderPublicKey",
"unique":false,
"columnNames":[
"senderPublicKey"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Zap_senderPublicKey` ON `${TABLE_NAME}` (`senderPublicKey`)"
},
{
"name":"index_Zap_nostrEventId",
"unique":false,
"columnNames":[
"nostrEventId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Zap_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
},
{
"name":"index_Zap_postId",
"unique":false,
"columnNames":[
"postId"
],
"orders":[],
"createSql":"CREATE INDEX IF NOT EXISTS `index_Zap_postId` ON `${TABLE_NAME}` (`postId`)"
}
],
"foreignKeys":[
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"senderPublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"Profile",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"receiverPublicKey"
],
"referencedColumns":[
"publicKey"
]
},
{
"table":"NostrEvent",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"nostrEventId"
],
"referencedColumns":[
"id"
]
},
{
"table":"Post",
"onDelete":"CASCADE",
"onUpdate":"NO ACTION",
"columns":[
"postId"
],
"referencedColumns":[
"id"
]
}
]
}
],
"setupQueries":[
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",