feat(db): add relay_message_id column to friend_requests
Nullable indexed column tracking the entityId of the originating relay event for federated friend requests. Used by the rollback hook in federationRollback.ts to locate and delete rows when a federated friend_request_create is permanently rejected (spec §5).
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE `friend_requests` ADD `relay_message_id` text;--> statement-breakpoint
|
||||||
|
CREATE INDEX `idx_friend_requests_relay_message_id` ON `friend_requests` (`relay_message_id`);
|
||||||
@@ -194,9 +194,11 @@ export const friendRequests = sqliteTable('friend_requests', {
|
|||||||
toId: text('to_id').notNull().references(() => users.id, { onDelete: 'cascade' }),
|
toId: text('to_id').notNull().references(() => users.id, { onDelete: 'cascade' }),
|
||||||
status: text('status').default('pending'), // 'pending', 'accepted', 'declined'
|
status: text('status').default('pending'), // 'pending', 'accepted', 'declined'
|
||||||
createdAt: integer('created_at').notNull(),
|
createdAt: integer('created_at').notNull(),
|
||||||
|
relayMessageId: text('relay_message_id'), // entityId of the originating relay event; null for local-only requests. Used by the rollback hook in federationRollback.ts to find rows for deletion when a federated friend_request_create is permanently rejected.
|
||||||
}, (table) => ({
|
}, (table) => ({
|
||||||
toIdx: index('idx_friend_requests_to_id').on(table.toId),
|
toIdx: index('idx_friend_requests_to_id').on(table.toId),
|
||||||
fromIdx: index('idx_friend_requests_from_id').on(table.fromId),
|
fromIdx: index('idx_friend_requests_from_id').on(table.fromId),
|
||||||
|
relayMessageIdx: index('idx_friend_requests_relay_message_id').on(table.relayMessageId),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
export const reactions = sqliteTable('reactions', {
|
export const reactions = sqliteTable('reactions', {
|
||||||
|
|||||||
Reference in New Issue
Block a user