2026-03-24 04:47:19 +02:00
{
"formatVersion" : 1 ,
"database" : {
"version" : 1 ,
2026-03-27 20:39:04 +02:00
"identityHash" : "866bd337c819985dae51a248851b3dd3" ,
2026-03-24 04:47:19 +02:00
"entities" : [
2026-03-25 04:19:06 +02:00
{
"tableName" : "BroadcastNostrEventReceipt" ,
2026-03-26 23:32:47 +02:00
"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, `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 )" ,
2026-03-25 04:19:06 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-26 23:32:47 +02:00
{
"fieldPath" : "unsignedNostrEventId" ,
"columnName" : "unsignedNostrEventId" ,
"affinity" : "INTEGER"
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "isAccepted" ,
"columnName" : "isAccepted" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
"fieldPath" : "relayURL" ,
"columnName" : "relayURL" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
"fieldPath" : "messages" ,
"columnName" : "messages" ,
"affinity" : "TEXT"
}
] ,
"primaryKey" : {
"autoGenerate" : true ,
"columnNames" : [
"id"
]
} ,
"indices" : [
{
"name" : "index_BroadcastNostrEventReceipt_nostrEventId" ,
"unique" : false ,
"columnNames" : [
"nostrEventId"
] ,
"orders" : [ ] ,
"createSql" : "CREATE INDEX IF NOT EXISTS `index_BroadcastNostrEventReceipt_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
} ,
{
"name" : "index_BroadcastNostrEventReceipt_isAccepted" ,
"unique" : false ,
"columnNames" : [
"isAccepted"
] ,
"orders" : [ ] ,
"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"
]
2026-03-26 23:32:47 +02:00
} ,
{
"table" : "UnsignedNostrEvent" ,
"onDelete" : "CASCADE" ,
"onUpdate" : "NO ACTION" ,
"columns" : [
"unsignedNostrEventId"
] ,
"referencedColumns" : [
"id"
]
2026-03-25 04:19:06 +02:00
}
]
} ,
{
"tableName" : "BroadcastNostrEventRequest" ,
2026-03-26 23:32:47 +02:00
"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, 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 )" ,
2026-03-25 04:19:06 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-26 23:32:47 +02:00
{
"fieldPath" : "unsignedNostrEventId" ,
"columnName" : "unsignedNostrEventId" ,
"affinity" : "INTEGER"
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "status" ,
"columnName" : "status" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
"fieldPath" : "relayURL" ,
"columnName" : "relayURL" ,
"affinity" : "TEXT" ,
"notNull" : true
}
] ,
"primaryKey" : {
"autoGenerate" : true ,
"columnNames" : [
"id"
]
} ,
"indices" : [
{
"name" : "index_BroadcastNostrEventRequest_nostrEventId" ,
"unique" : false ,
"columnNames" : [
"nostrEventId"
] ,
"orders" : [ ] ,
"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"
]
2026-03-26 23:32:47 +02:00
} ,
{
"table" : "UnsignedNostrEvent" ,
"onDelete" : "CASCADE" ,
"onUpdate" : "NO ACTION" ,
"columns" : [
"unsignedNostrEventId"
] ,
"referencedColumns" : [
"id"
]
2026-03-25 04:19:06 +02:00
}
]
} ,
2026-03-24 04:47:19 +02:00
{
"tableName" : "NostrEvent" ,
2026-03-26 23:32:47 +02:00
"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, `unsignedNostrEventId` INTEGER, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER, PRIMARY KEY(`id`))" ,
2026-03-24 04:47:19 +02:00
"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
2026-03-24 22:49:03 +02:00
} ,
2026-03-26 23:32:47 +02:00
{
"fieldPath" : "unsignedNostrEventId" ,
"columnName" : "unsignedNostrEventId" ,
"affinity" : "INTEGER"
} ,
2026-03-24 22:49:03 +02:00
{
"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"
2026-03-24 04:47:19 +02:00
}
] ,
"primaryKey" : {
"autoGenerate" : false ,
"columnNames" : [
"id"
]
2026-03-26 02:52:08 +02:00
} ,
"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`)"
}
]
2026-03-24 04:47:19 +02:00
} ,
{
"tableName" : "Post" ,
2026-03-25 04:19:06 +02:00
"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 )" ,
2026-03-24 04:47:19 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
"fieldPath" : "repostId" ,
"columnName" : "repostId" ,
"affinity" : "TEXT"
} ,
{
"fieldPath" : "quote" ,
"columnName" : "quote" ,
"affinity" : "TEXT"
} ,
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "content" ,
"columnName" : "content" ,
2026-03-24 04:47:19 +02:00
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 22:49:03 +02:00
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
"fieldPath" : "replyToId" ,
"columnName" : "replyToId" ,
"affinity" : "TEXT"
} ,
{
"fieldPath" : "profilePublicKey" ,
"columnName" : "profilePublicKey" ,
2026-03-24 22:49:03 +02:00
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 04:47:19 +02:00
{
"fieldPath" : "createdAt" ,
"columnName" : "createdAt" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
2026-03-24 22:49:03 +02:00
"fieldPath" : "updatedAt" ,
"columnName" : "updatedAt" ,
2026-03-24 04:47:19 +02:00
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
2026-03-24 22:49:03 +02:00
"fieldPath" : "savedAt" ,
"columnName" : "savedAt" ,
2026-03-24 04:47:19 +02:00
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
2026-03-24 22:49:03 +02:00
"fieldPath" : "viewedAt" ,
"columnName" : "viewedAt" ,
"affinity" : "INTEGER"
} ,
{
"fieldPath" : "deletedAt" ,
"columnName" : "deletedAt" ,
"affinity" : "INTEGER"
} ,
{
"fieldPath" : "broadcastedAt" ,
"columnName" : "broadcastedAt" ,
"affinity" : "INTEGER"
2026-03-24 04:47:19 +02:00
}
] ,
"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" ,
2026-03-25 04:19:06 +02:00
"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 )" ,
2026-03-24 04:47:19 +02:00
"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"
2026-03-24 22:49:03 +02:00
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 22:49:03 +02:00
{
"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"
2026-03-24 04:47:19 +02:00
}
] ,
"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" : "Reaction" ,
2026-03-25 04:19:06 +02:00
"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 )" ,
2026-03-24 04:47:19 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "content" ,
"columnName" : "content" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 04:47:19 +02:00
{
"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
} ,
{
2026-03-24 22:49:03 +02:00
"fieldPath" : "updatedAt" ,
"columnName" : "updatedAt" ,
"affinity" : "INTEGER" ,
2026-03-24 04:47:19 +02:00
"notNull" : true
2026-03-24 22:49:03 +02:00
} ,
{
"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"
2026-03-24 04:47:19 +02:00
}
] ,
"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" : "Repost" ,
2026-03-25 04:19:06 +02:00
"createSql" : "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `repostedPostId` TEXT, `content` TEXT NOT NULL, `nostrEventId` 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(`repostedPostId`) REFERENCES `Post`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )" ,
2026-03-24 04:47:19 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "repostedPostId" ,
"columnName" : "repostedPostId" ,
"affinity" : "TEXT"
2026-03-24 04:47:19 +02:00
} ,
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "content" ,
"columnName" : "content" ,
"affinity" : "TEXT" ,
"notNull" : true
2026-03-24 04:47:19 +02:00
} ,
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
2026-03-24 04:47:19 +02:00
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 22:49:03 +02:00
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "profilePublicKey" ,
"columnName" : "profilePublicKey" ,
2026-03-24 22:49:03 +02:00
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 04:47:19 +02:00
{
"fieldPath" : "createdAt" ,
"columnName" : "createdAt" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
2026-03-24 22:49:03 +02:00
"fieldPath" : "updatedAt" ,
"columnName" : "updatedAt" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
"fieldPath" : "savedAt" ,
"columnName" : "savedAt" ,
"affinity" : "INTEGER" ,
2026-03-24 04:47:19 +02:00
"notNull" : true
2026-03-24 22:49:03 +02:00
} ,
{
"fieldPath" : "viewedAt" ,
"columnName" : "viewedAt" ,
"affinity" : "INTEGER"
} ,
{
"fieldPath" : "deletedAt" ,
"columnName" : "deletedAt" ,
"affinity" : "INTEGER"
} ,
{
"fieldPath" : "broadcastedAt" ,
"columnName" : "broadcastedAt" ,
"affinity" : "INTEGER"
2026-03-24 04:47:19 +02:00
}
] ,
"primaryKey" : {
"autoGenerate" : false ,
"columnNames" : [
"id"
]
} ,
"indices" : [
{
"name" : "index_Repost_profilePublicKey" ,
"unique" : false ,
"columnNames" : [
"profilePublicKey"
] ,
"orders" : [ ] ,
"createSql" : "CREATE INDEX IF NOT EXISTS `index_Repost_profilePublicKey` ON `${TABLE_NAME}` (`profilePublicKey`)"
} ,
{
"name" : "index_Repost_nostrEventId" ,
"unique" : false ,
"columnNames" : [
"nostrEventId"
] ,
"orders" : [ ] ,
"createSql" : "CREATE INDEX IF NOT EXISTS `index_Repost_nostrEventId` ON `${TABLE_NAME}` (`nostrEventId`)"
} ,
{
2026-03-25 04:19:06 +02:00
"name" : "index_Repost_repostedPostId" ,
2026-03-24 04:47:19 +02:00
"unique" : false ,
"columnNames" : [
2026-03-25 04:19:06 +02:00
"repostedPostId"
2026-03-24 04:47:19 +02:00
] ,
"orders" : [ ] ,
2026-03-25 04:19:06 +02:00
"createSql" : "CREATE INDEX IF NOT EXISTS `index_Repost_repostedPostId` ON `${TABLE_NAME}` (`repostedPostId`)"
2026-03-24 04:47:19 +02:00
}
] ,
"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" : [
2026-03-25 04:19:06 +02:00
"repostedPostId"
2026-03-24 04:47:19 +02:00
] ,
"referencedColumns" : [
"id"
]
}
]
} ,
{
2026-03-25 04:19:06 +02:00
"tableName" : "UnsignedNostrEvent" ,
2026-03-27 20:39:04 +02:00
"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, `content` TEXT NOT NULL, `signedAt` INTEGER, `createdAt` INTEGER NOT NULL, `updatedAt` INTEGER NOT NULL, `savedAt` INTEGER NOT NULL, `deletedAt` INTEGER, `broadcastedAt` INTEGER)" ,
2026-03-24 04:47:19 +02:00
"fields" : [
{
"fieldPath" : "id" ,
"columnName" : "id" ,
2026-03-25 04:19:06 +02:00
"affinity" : "INTEGER" ,
"notNull" : true
} ,
2026-03-26 03:03:42 +02:00
{
"fieldPath" : "pubKey" ,
"columnName" : "pubKey" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "kind" ,
"columnName" : "kind" ,
"affinity" : "INTEGER" ,
"notNull" : true
} ,
{
"fieldPath" : "tags" ,
"columnName" : "tags" ,
2026-03-24 04:47:19 +02:00
"affinity" : "TEXT" ,
"notNull" : true
} ,
{
2026-03-25 04:19:06 +02:00
"fieldPath" : "content" ,
"columnName" : "content" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-27 20:39:04 +02:00
{
"fieldPath" : "signedAt" ,
"columnName" : "signedAt" ,
"affinity" : "INTEGER"
} ,
2026-03-25 04:19:06 +02:00
{
"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" : [
{
2026-03-26 23:32:47 +02:00
"name" : "index_UnsignedNostrEvent_pubKey" ,
2026-03-25 04:19:06 +02:00
"unique" : false ,
"columnNames" : [
2026-03-26 23:32:47 +02:00
"pubKey"
2026-03-25 04:19:06 +02:00
] ,
"orders" : [ ] ,
2026-03-26 23:32:47 +02:00
"createSql" : "CREATE INDEX IF NOT EXISTS `index_UnsignedNostrEvent_pubKey` ON `${TABLE_NAME}` (`pubKey`)"
} ,
2026-03-25 04:19:06 +02:00
{
2026-03-26 23:32:47 +02:00
"name" : "index_UnsignedNostrEvent_kind" ,
"unique" : false ,
"columnNames" : [
"kind"
2026-03-25 04:19:06 +02:00
] ,
2026-03-26 23:32:47 +02:00
"orders" : [ ] ,
"createSql" : "CREATE INDEX IF NOT EXISTS `index_UnsignedNostrEvent_kind` ON `${TABLE_NAME}` (`kind`)"
2026-03-25 04:19:06 +02:00
}
]
} ,
{
"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" ,
2026-03-24 04:47:19 +02:00
"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"
2026-03-24 22:49:03 +02:00
} ,
2026-03-25 04:19:06 +02:00
{
"fieldPath" : "amountInMillisatoshis" ,
"columnName" : "amountInMillisatoshis" ,
"affinity" : "INTEGER"
} ,
{
"fieldPath" : "nostrEventId" ,
"columnName" : "nostrEventId" ,
"affinity" : "TEXT" ,
"notNull" : true
} ,
2026-03-24 22:49:03 +02:00
{
"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"
2026-03-24 04:47:19 +02:00
}
] ,
"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)" ,
2026-03-27 20:39:04 +02:00
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '866bd337c819985dae51a248851b3dd3')"
2026-03-24 04:47:19 +02:00
]
}
}