WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto
at root/atb-56-theme-caching-layer 169 lines 6.3 kB view raw
1CREATE TABLE `backfill_errors` ( 2 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 3 `backfill_id` integer NOT NULL, 4 `did` text NOT NULL, 5 `collection` text NOT NULL, 6 `error_message` text NOT NULL, 7 `created_at` integer NOT NULL, 8 FOREIGN KEY (`backfill_id`) REFERENCES `backfill_progress`(`id`) ON UPDATE no action ON DELETE no action 9); 10--> statement-breakpoint 11CREATE INDEX `backfill_errors_backfill_id_idx` ON `backfill_errors` (`backfill_id`);--> statement-breakpoint 12CREATE TABLE `backfill_progress` ( 13 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 14 `status` text NOT NULL, 15 `backfill_type` text NOT NULL, 16 `last_processed_did` text, 17 `dids_total` integer DEFAULT 0 NOT NULL, 18 `dids_processed` integer DEFAULT 0 NOT NULL, 19 `records_indexed` integer DEFAULT 0 NOT NULL, 20 `started_at` integer NOT NULL, 21 `completed_at` integer, 22 `error_message` text 23); 24--> statement-breakpoint 25CREATE TABLE `boards` ( 26 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 27 `did` text NOT NULL, 28 `rkey` text NOT NULL, 29 `cid` text NOT NULL, 30 `name` text NOT NULL, 31 `description` text, 32 `slug` text, 33 `sort_order` integer, 34 `category_id` integer, 35 `category_uri` text NOT NULL, 36 `created_at` integer NOT NULL, 37 `indexed_at` integer NOT NULL, 38 FOREIGN KEY (`category_id`) REFERENCES `categories`(`id`) ON UPDATE no action ON DELETE no action 39); 40--> statement-breakpoint 41CREATE UNIQUE INDEX `boards_did_rkey_idx` ON `boards` (`did`,`rkey`);--> statement-breakpoint 42CREATE INDEX `boards_category_id_idx` ON `boards` (`category_id`);--> statement-breakpoint 43CREATE TABLE `categories` ( 44 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 45 `did` text NOT NULL, 46 `rkey` text NOT NULL, 47 `cid` text NOT NULL, 48 `name` text NOT NULL, 49 `description` text, 50 `slug` text, 51 `sort_order` integer, 52 `forum_id` integer, 53 `created_at` integer NOT NULL, 54 `indexed_at` integer NOT NULL, 55 FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action 56); 57--> statement-breakpoint 58CREATE UNIQUE INDEX `categories_did_rkey_idx` ON `categories` (`did`,`rkey`);--> statement-breakpoint 59CREATE TABLE `firehose_cursor` ( 60 `service` text PRIMARY KEY DEFAULT 'jetstream' NOT NULL, 61 `cursor` integer NOT NULL, 62 `updated_at` integer NOT NULL 63); 64--> statement-breakpoint 65CREATE TABLE `forums` ( 66 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 67 `did` text NOT NULL, 68 `rkey` text NOT NULL, 69 `cid` text NOT NULL, 70 `name` text NOT NULL, 71 `description` text, 72 `indexed_at` integer NOT NULL 73); 74--> statement-breakpoint 75CREATE UNIQUE INDEX `forums_did_rkey_idx` ON `forums` (`did`,`rkey`);--> statement-breakpoint 76CREATE TABLE `memberships` ( 77 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 78 `did` text NOT NULL, 79 `rkey` text NOT NULL, 80 `cid` text NOT NULL, 81 `forum_id` integer, 82 `forum_uri` text NOT NULL, 83 `role` text, 84 `role_uri` text, 85 `joined_at` integer, 86 `created_at` integer NOT NULL, 87 `indexed_at` integer NOT NULL, 88 FOREIGN KEY (`did`) REFERENCES `users`(`did`) ON UPDATE no action ON DELETE no action, 89 FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action 90); 91--> statement-breakpoint 92CREATE UNIQUE INDEX `memberships_did_rkey_idx` ON `memberships` (`did`,`rkey`);--> statement-breakpoint 93CREATE INDEX `memberships_did_idx` ON `memberships` (`did`);--> statement-breakpoint 94CREATE TABLE `mod_actions` ( 95 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 96 `did` text NOT NULL, 97 `rkey` text NOT NULL, 98 `cid` text NOT NULL, 99 `action` text NOT NULL, 100 `subject_did` text, 101 `subject_post_uri` text, 102 `forum_id` integer, 103 `reason` text, 104 `created_by` text NOT NULL, 105 `expires_at` integer, 106 `created_at` integer NOT NULL, 107 `indexed_at` integer NOT NULL, 108 FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action 109); 110--> statement-breakpoint 111CREATE UNIQUE INDEX `mod_actions_did_rkey_idx` ON `mod_actions` (`did`,`rkey`);--> statement-breakpoint 112CREATE INDEX `mod_actions_subject_did_idx` ON `mod_actions` (`subject_did`);--> statement-breakpoint 113CREATE INDEX `mod_actions_subject_post_uri_idx` ON `mod_actions` (`subject_post_uri`);--> statement-breakpoint 114CREATE TABLE `posts` ( 115 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 116 `did` text NOT NULL, 117 `rkey` text NOT NULL, 118 `cid` text NOT NULL, 119 `title` text, 120 `text` text NOT NULL, 121 `forum_uri` text, 122 `board_uri` text, 123 `board_id` integer, 124 `root_post_id` integer, 125 `parent_post_id` integer, 126 `root_uri` text, 127 `parent_uri` text, 128 `created_at` integer NOT NULL, 129 `indexed_at` integer NOT NULL, 130 `banned_by_mod` integer DEFAULT false NOT NULL, 131 `deleted_by_user` integer DEFAULT false NOT NULL, 132 FOREIGN KEY (`did`) REFERENCES `users`(`did`) ON UPDATE no action ON DELETE no action, 133 FOREIGN KEY (`board_id`) REFERENCES `boards`(`id`) ON UPDATE no action ON DELETE no action, 134 FOREIGN KEY (`root_post_id`) REFERENCES `posts`(`id`) ON UPDATE no action ON DELETE no action, 135 FOREIGN KEY (`parent_post_id`) REFERENCES `posts`(`id`) ON UPDATE no action ON DELETE no action 136); 137--> statement-breakpoint 138CREATE UNIQUE INDEX `posts_did_rkey_idx` ON `posts` (`did`,`rkey`);--> statement-breakpoint 139CREATE INDEX `posts_forum_uri_idx` ON `posts` (`forum_uri`);--> statement-breakpoint 140CREATE INDEX `posts_board_id_idx` ON `posts` (`board_id`);--> statement-breakpoint 141CREATE INDEX `posts_board_uri_idx` ON `posts` (`board_uri`);--> statement-breakpoint 142CREATE INDEX `posts_root_post_id_idx` ON `posts` (`root_post_id`);--> statement-breakpoint 143CREATE TABLE `role_permissions` ( 144 `role_id` integer NOT NULL, 145 `permission` text NOT NULL, 146 PRIMARY KEY(`role_id`, `permission`), 147 FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE no action ON DELETE cascade 148); 149--> statement-breakpoint 150CREATE TABLE `roles` ( 151 `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, 152 `did` text NOT NULL, 153 `rkey` text NOT NULL, 154 `cid` text NOT NULL, 155 `name` text NOT NULL, 156 `description` text, 157 `priority` integer NOT NULL, 158 `created_at` integer NOT NULL, 159 `indexed_at` integer NOT NULL 160); 161--> statement-breakpoint 162CREATE UNIQUE INDEX `roles_did_rkey_idx` ON `roles` (`did`,`rkey`);--> statement-breakpoint 163CREATE INDEX `roles_did_idx` ON `roles` (`did`);--> statement-breakpoint 164CREATE INDEX `roles_did_name_idx` ON `roles` (`did`,`name`);--> statement-breakpoint 165CREATE TABLE `users` ( 166 `did` text PRIMARY KEY NOT NULL, 167 `handle` text, 168 `indexed_at` integer NOT NULL 169);