d548d4bd6f
Hop-State: A_06FPG3MP3DEEGFB3AWBG03G Hop-Proposal: R_06FPG3KD4J27QKCSNRBMFF0 Hop-Task: T_06FPFT83JWNP9AP1GRH36VR Hop-Attempt: AT_06FPFT83JZM51ZFSMVPE5QR
38 lines
1.7 KiB
SQL
38 lines
1.7 KiB
SQL
CREATE TABLE `mention_deliveries` (
|
|
`id` text PRIMARY KEY,
|
|
`interaction_id` text NOT NULL UNIQUE,
|
|
`post_id` text NOT NULL,
|
|
`target_handle` text NOT NULL,
|
|
`target_domain` text NOT NULL,
|
|
`status` text DEFAULT 'pending' NOT NULL,
|
|
`attempts` integer DEFAULT 0 NOT NULL,
|
|
`next_attempt_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`last_attempt_at` integer,
|
|
`delivered_at` integer,
|
|
`last_error` text,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
CONSTRAINT `fk_mention_deliveries_post_id_posts_id_fk` FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE CASCADE
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE `notifications` ADD `remote_post_id` text;--> statement-breakpoint
|
|
ALTER TABLE `notifications` ADD `remote_post_domain` text;--> statement-breakpoint
|
|
ALTER TABLE `notifications` ADD `interaction_id` text;--> statement-breakpoint
|
|
DELETE FROM `bot_mentions`
|
|
WHERE `id` IN (
|
|
SELECT `id` FROM (
|
|
SELECT
|
|
`id`,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY `bot_id`, `post_id`
|
|
ORDER BY `is_processed` DESC, `created_at` ASC, `id` ASC
|
|
) AS `duplicate_rank`
|
|
FROM `bot_mentions`
|
|
)
|
|
WHERE `duplicate_rank` > 1
|
|
);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `bot_mentions_bot_post_unique_idx` ON `bot_mentions` (`bot_id`,`post_id`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `mention_deliveries_target_unique_idx` ON `mention_deliveries` (`post_id`,`target_handle`,`target_domain`);--> statement-breakpoint
|
|
CREATE INDEX `mention_deliveries_due_idx` ON `mention_deliveries` (`status`,`next_attempt_at`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `notifications_interaction_unique_idx` ON `notifications` (`interaction_id`);
|