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
1{
2 "id": "d3732d17-9130-47d8-9eb9-664a768a7a07",
3 "prevId": "838aff64-8b13-4395-92c7-2c7ce2c12c73",
4 "version": "7",
5 "dialect": "postgresql",
6 "tables": {
7 "public.boards": {
8 "name": "boards",
9 "schema": "",
10 "columns": {
11 "id": {
12 "name": "id",
13 "type": "bigserial",
14 "primaryKey": true,
15 "notNull": true
16 },
17 "did": {
18 "name": "did",
19 "type": "text",
20 "primaryKey": false,
21 "notNull": true
22 },
23 "rkey": {
24 "name": "rkey",
25 "type": "text",
26 "primaryKey": false,
27 "notNull": true
28 },
29 "cid": {
30 "name": "cid",
31 "type": "text",
32 "primaryKey": false,
33 "notNull": true
34 },
35 "name": {
36 "name": "name",
37 "type": "text",
38 "primaryKey": false,
39 "notNull": true
40 },
41 "description": {
42 "name": "description",
43 "type": "text",
44 "primaryKey": false,
45 "notNull": false
46 },
47 "slug": {
48 "name": "slug",
49 "type": "text",
50 "primaryKey": false,
51 "notNull": false
52 },
53 "sort_order": {
54 "name": "sort_order",
55 "type": "integer",
56 "primaryKey": false,
57 "notNull": false
58 },
59 "category_id": {
60 "name": "category_id",
61 "type": "bigint",
62 "primaryKey": false,
63 "notNull": false
64 },
65 "category_uri": {
66 "name": "category_uri",
67 "type": "text",
68 "primaryKey": false,
69 "notNull": true
70 },
71 "created_at": {
72 "name": "created_at",
73 "type": "timestamp with time zone",
74 "primaryKey": false,
75 "notNull": true
76 },
77 "indexed_at": {
78 "name": "indexed_at",
79 "type": "timestamp with time zone",
80 "primaryKey": false,
81 "notNull": true
82 }
83 },
84 "indexes": {
85 "boards_did_rkey_idx": {
86 "name": "boards_did_rkey_idx",
87 "columns": [
88 {
89 "expression": "did",
90 "isExpression": false,
91 "asc": true,
92 "nulls": "last"
93 },
94 {
95 "expression": "rkey",
96 "isExpression": false,
97 "asc": true,
98 "nulls": "last"
99 }
100 ],
101 "isUnique": true,
102 "concurrently": false,
103 "method": "btree",
104 "with": {}
105 },
106 "boards_category_id_idx": {
107 "name": "boards_category_id_idx",
108 "columns": [
109 {
110 "expression": "category_id",
111 "isExpression": false,
112 "asc": true,
113 "nulls": "last"
114 }
115 ],
116 "isUnique": false,
117 "concurrently": false,
118 "method": "btree",
119 "with": {}
120 }
121 },
122 "foreignKeys": {
123 "boards_category_id_categories_id_fk": {
124 "name": "boards_category_id_categories_id_fk",
125 "tableFrom": "boards",
126 "tableTo": "categories",
127 "columnsFrom": [
128 "category_id"
129 ],
130 "columnsTo": [
131 "id"
132 ],
133 "onDelete": "no action",
134 "onUpdate": "no action"
135 }
136 },
137 "compositePrimaryKeys": {},
138 "uniqueConstraints": {},
139 "policies": {},
140 "checkConstraints": {},
141 "isRLSEnabled": false
142 },
143 "public.categories": {
144 "name": "categories",
145 "schema": "",
146 "columns": {
147 "id": {
148 "name": "id",
149 "type": "bigserial",
150 "primaryKey": true,
151 "notNull": true
152 },
153 "did": {
154 "name": "did",
155 "type": "text",
156 "primaryKey": false,
157 "notNull": true
158 },
159 "rkey": {
160 "name": "rkey",
161 "type": "text",
162 "primaryKey": false,
163 "notNull": true
164 },
165 "cid": {
166 "name": "cid",
167 "type": "text",
168 "primaryKey": false,
169 "notNull": true
170 },
171 "name": {
172 "name": "name",
173 "type": "text",
174 "primaryKey": false,
175 "notNull": true
176 },
177 "description": {
178 "name": "description",
179 "type": "text",
180 "primaryKey": false,
181 "notNull": false
182 },
183 "slug": {
184 "name": "slug",
185 "type": "text",
186 "primaryKey": false,
187 "notNull": false
188 },
189 "sort_order": {
190 "name": "sort_order",
191 "type": "integer",
192 "primaryKey": false,
193 "notNull": false
194 },
195 "forum_id": {
196 "name": "forum_id",
197 "type": "bigint",
198 "primaryKey": false,
199 "notNull": false
200 },
201 "created_at": {
202 "name": "created_at",
203 "type": "timestamp with time zone",
204 "primaryKey": false,
205 "notNull": true
206 },
207 "indexed_at": {
208 "name": "indexed_at",
209 "type": "timestamp with time zone",
210 "primaryKey": false,
211 "notNull": true
212 }
213 },
214 "indexes": {
215 "categories_did_rkey_idx": {
216 "name": "categories_did_rkey_idx",
217 "columns": [
218 {
219 "expression": "did",
220 "isExpression": false,
221 "asc": true,
222 "nulls": "last"
223 },
224 {
225 "expression": "rkey",
226 "isExpression": false,
227 "asc": true,
228 "nulls": "last"
229 }
230 ],
231 "isUnique": true,
232 "concurrently": false,
233 "method": "btree",
234 "with": {}
235 }
236 },
237 "foreignKeys": {
238 "categories_forum_id_forums_id_fk": {
239 "name": "categories_forum_id_forums_id_fk",
240 "tableFrom": "categories",
241 "tableTo": "forums",
242 "columnsFrom": [
243 "forum_id"
244 ],
245 "columnsTo": [
246 "id"
247 ],
248 "onDelete": "no action",
249 "onUpdate": "no action"
250 }
251 },
252 "compositePrimaryKeys": {},
253 "uniqueConstraints": {},
254 "policies": {},
255 "checkConstraints": {},
256 "isRLSEnabled": false
257 },
258 "public.firehose_cursor": {
259 "name": "firehose_cursor",
260 "schema": "",
261 "columns": {
262 "service": {
263 "name": "service",
264 "type": "text",
265 "primaryKey": true,
266 "notNull": true,
267 "default": "'jetstream'"
268 },
269 "cursor": {
270 "name": "cursor",
271 "type": "bigint",
272 "primaryKey": false,
273 "notNull": true
274 },
275 "updated_at": {
276 "name": "updated_at",
277 "type": "timestamp with time zone",
278 "primaryKey": false,
279 "notNull": true
280 }
281 },
282 "indexes": {},
283 "foreignKeys": {},
284 "compositePrimaryKeys": {},
285 "uniqueConstraints": {},
286 "policies": {},
287 "checkConstraints": {},
288 "isRLSEnabled": false
289 },
290 "public.forums": {
291 "name": "forums",
292 "schema": "",
293 "columns": {
294 "id": {
295 "name": "id",
296 "type": "bigserial",
297 "primaryKey": true,
298 "notNull": true
299 },
300 "did": {
301 "name": "did",
302 "type": "text",
303 "primaryKey": false,
304 "notNull": true
305 },
306 "rkey": {
307 "name": "rkey",
308 "type": "text",
309 "primaryKey": false,
310 "notNull": true
311 },
312 "cid": {
313 "name": "cid",
314 "type": "text",
315 "primaryKey": false,
316 "notNull": true
317 },
318 "name": {
319 "name": "name",
320 "type": "text",
321 "primaryKey": false,
322 "notNull": true
323 },
324 "description": {
325 "name": "description",
326 "type": "text",
327 "primaryKey": false,
328 "notNull": false
329 },
330 "indexed_at": {
331 "name": "indexed_at",
332 "type": "timestamp with time zone",
333 "primaryKey": false,
334 "notNull": true
335 }
336 },
337 "indexes": {
338 "forums_did_rkey_idx": {
339 "name": "forums_did_rkey_idx",
340 "columns": [
341 {
342 "expression": "did",
343 "isExpression": false,
344 "asc": true,
345 "nulls": "last"
346 },
347 {
348 "expression": "rkey",
349 "isExpression": false,
350 "asc": true,
351 "nulls": "last"
352 }
353 ],
354 "isUnique": true,
355 "concurrently": false,
356 "method": "btree",
357 "with": {}
358 }
359 },
360 "foreignKeys": {},
361 "compositePrimaryKeys": {},
362 "uniqueConstraints": {},
363 "policies": {},
364 "checkConstraints": {},
365 "isRLSEnabled": false
366 },
367 "public.memberships": {
368 "name": "memberships",
369 "schema": "",
370 "columns": {
371 "id": {
372 "name": "id",
373 "type": "bigserial",
374 "primaryKey": true,
375 "notNull": true
376 },
377 "did": {
378 "name": "did",
379 "type": "text",
380 "primaryKey": false,
381 "notNull": true
382 },
383 "rkey": {
384 "name": "rkey",
385 "type": "text",
386 "primaryKey": false,
387 "notNull": true
388 },
389 "cid": {
390 "name": "cid",
391 "type": "text",
392 "primaryKey": false,
393 "notNull": true
394 },
395 "forum_id": {
396 "name": "forum_id",
397 "type": "bigint",
398 "primaryKey": false,
399 "notNull": false
400 },
401 "forum_uri": {
402 "name": "forum_uri",
403 "type": "text",
404 "primaryKey": false,
405 "notNull": true
406 },
407 "role": {
408 "name": "role",
409 "type": "text",
410 "primaryKey": false,
411 "notNull": false
412 },
413 "role_uri": {
414 "name": "role_uri",
415 "type": "text",
416 "primaryKey": false,
417 "notNull": false
418 },
419 "joined_at": {
420 "name": "joined_at",
421 "type": "timestamp with time zone",
422 "primaryKey": false,
423 "notNull": false
424 },
425 "created_at": {
426 "name": "created_at",
427 "type": "timestamp with time zone",
428 "primaryKey": false,
429 "notNull": true
430 },
431 "indexed_at": {
432 "name": "indexed_at",
433 "type": "timestamp with time zone",
434 "primaryKey": false,
435 "notNull": true
436 }
437 },
438 "indexes": {
439 "memberships_did_rkey_idx": {
440 "name": "memberships_did_rkey_idx",
441 "columns": [
442 {
443 "expression": "did",
444 "isExpression": false,
445 "asc": true,
446 "nulls": "last"
447 },
448 {
449 "expression": "rkey",
450 "isExpression": false,
451 "asc": true,
452 "nulls": "last"
453 }
454 ],
455 "isUnique": true,
456 "concurrently": false,
457 "method": "btree",
458 "with": {}
459 },
460 "memberships_did_idx": {
461 "name": "memberships_did_idx",
462 "columns": [
463 {
464 "expression": "did",
465 "isExpression": false,
466 "asc": true,
467 "nulls": "last"
468 }
469 ],
470 "isUnique": false,
471 "concurrently": false,
472 "method": "btree",
473 "with": {}
474 }
475 },
476 "foreignKeys": {
477 "memberships_did_users_did_fk": {
478 "name": "memberships_did_users_did_fk",
479 "tableFrom": "memberships",
480 "tableTo": "users",
481 "columnsFrom": [
482 "did"
483 ],
484 "columnsTo": [
485 "did"
486 ],
487 "onDelete": "no action",
488 "onUpdate": "no action"
489 },
490 "memberships_forum_id_forums_id_fk": {
491 "name": "memberships_forum_id_forums_id_fk",
492 "tableFrom": "memberships",
493 "tableTo": "forums",
494 "columnsFrom": [
495 "forum_id"
496 ],
497 "columnsTo": [
498 "id"
499 ],
500 "onDelete": "no action",
501 "onUpdate": "no action"
502 }
503 },
504 "compositePrimaryKeys": {},
505 "uniqueConstraints": {},
506 "policies": {},
507 "checkConstraints": {},
508 "isRLSEnabled": false
509 },
510 "public.mod_actions": {
511 "name": "mod_actions",
512 "schema": "",
513 "columns": {
514 "id": {
515 "name": "id",
516 "type": "bigserial",
517 "primaryKey": true,
518 "notNull": true
519 },
520 "did": {
521 "name": "did",
522 "type": "text",
523 "primaryKey": false,
524 "notNull": true
525 },
526 "rkey": {
527 "name": "rkey",
528 "type": "text",
529 "primaryKey": false,
530 "notNull": true
531 },
532 "cid": {
533 "name": "cid",
534 "type": "text",
535 "primaryKey": false,
536 "notNull": true
537 },
538 "action": {
539 "name": "action",
540 "type": "text",
541 "primaryKey": false,
542 "notNull": true
543 },
544 "subject_did": {
545 "name": "subject_did",
546 "type": "text",
547 "primaryKey": false,
548 "notNull": false
549 },
550 "subject_post_uri": {
551 "name": "subject_post_uri",
552 "type": "text",
553 "primaryKey": false,
554 "notNull": false
555 },
556 "forum_id": {
557 "name": "forum_id",
558 "type": "bigint",
559 "primaryKey": false,
560 "notNull": false
561 },
562 "reason": {
563 "name": "reason",
564 "type": "text",
565 "primaryKey": false,
566 "notNull": false
567 },
568 "created_by": {
569 "name": "created_by",
570 "type": "text",
571 "primaryKey": false,
572 "notNull": true
573 },
574 "expires_at": {
575 "name": "expires_at",
576 "type": "timestamp with time zone",
577 "primaryKey": false,
578 "notNull": false
579 },
580 "created_at": {
581 "name": "created_at",
582 "type": "timestamp with time zone",
583 "primaryKey": false,
584 "notNull": true
585 },
586 "indexed_at": {
587 "name": "indexed_at",
588 "type": "timestamp with time zone",
589 "primaryKey": false,
590 "notNull": true
591 }
592 },
593 "indexes": {
594 "mod_actions_did_rkey_idx": {
595 "name": "mod_actions_did_rkey_idx",
596 "columns": [
597 {
598 "expression": "did",
599 "isExpression": false,
600 "asc": true,
601 "nulls": "last"
602 },
603 {
604 "expression": "rkey",
605 "isExpression": false,
606 "asc": true,
607 "nulls": "last"
608 }
609 ],
610 "isUnique": true,
611 "concurrently": false,
612 "method": "btree",
613 "with": {}
614 }
615 },
616 "foreignKeys": {
617 "mod_actions_forum_id_forums_id_fk": {
618 "name": "mod_actions_forum_id_forums_id_fk",
619 "tableFrom": "mod_actions",
620 "tableTo": "forums",
621 "columnsFrom": [
622 "forum_id"
623 ],
624 "columnsTo": [
625 "id"
626 ],
627 "onDelete": "no action",
628 "onUpdate": "no action"
629 }
630 },
631 "compositePrimaryKeys": {},
632 "uniqueConstraints": {},
633 "policies": {},
634 "checkConstraints": {},
635 "isRLSEnabled": false
636 },
637 "public.posts": {
638 "name": "posts",
639 "schema": "",
640 "columns": {
641 "id": {
642 "name": "id",
643 "type": "bigserial",
644 "primaryKey": true,
645 "notNull": true
646 },
647 "did": {
648 "name": "did",
649 "type": "text",
650 "primaryKey": false,
651 "notNull": true
652 },
653 "rkey": {
654 "name": "rkey",
655 "type": "text",
656 "primaryKey": false,
657 "notNull": true
658 },
659 "cid": {
660 "name": "cid",
661 "type": "text",
662 "primaryKey": false,
663 "notNull": true
664 },
665 "text": {
666 "name": "text",
667 "type": "text",
668 "primaryKey": false,
669 "notNull": true
670 },
671 "forum_uri": {
672 "name": "forum_uri",
673 "type": "text",
674 "primaryKey": false,
675 "notNull": false
676 },
677 "root_post_id": {
678 "name": "root_post_id",
679 "type": "bigint",
680 "primaryKey": false,
681 "notNull": false
682 },
683 "parent_post_id": {
684 "name": "parent_post_id",
685 "type": "bigint",
686 "primaryKey": false,
687 "notNull": false
688 },
689 "root_uri": {
690 "name": "root_uri",
691 "type": "text",
692 "primaryKey": false,
693 "notNull": false
694 },
695 "parent_uri": {
696 "name": "parent_uri",
697 "type": "text",
698 "primaryKey": false,
699 "notNull": false
700 },
701 "created_at": {
702 "name": "created_at",
703 "type": "timestamp with time zone",
704 "primaryKey": false,
705 "notNull": true
706 },
707 "indexed_at": {
708 "name": "indexed_at",
709 "type": "timestamp with time zone",
710 "primaryKey": false,
711 "notNull": true
712 },
713 "deleted": {
714 "name": "deleted",
715 "type": "boolean",
716 "primaryKey": false,
717 "notNull": true,
718 "default": false
719 }
720 },
721 "indexes": {
722 "posts_did_rkey_idx": {
723 "name": "posts_did_rkey_idx",
724 "columns": [
725 {
726 "expression": "did",
727 "isExpression": false,
728 "asc": true,
729 "nulls": "last"
730 },
731 {
732 "expression": "rkey",
733 "isExpression": false,
734 "asc": true,
735 "nulls": "last"
736 }
737 ],
738 "isUnique": true,
739 "concurrently": false,
740 "method": "btree",
741 "with": {}
742 },
743 "posts_forum_uri_idx": {
744 "name": "posts_forum_uri_idx",
745 "columns": [
746 {
747 "expression": "forum_uri",
748 "isExpression": false,
749 "asc": true,
750 "nulls": "last"
751 }
752 ],
753 "isUnique": false,
754 "concurrently": false,
755 "method": "btree",
756 "with": {}
757 },
758 "posts_root_post_id_idx": {
759 "name": "posts_root_post_id_idx",
760 "columns": [
761 {
762 "expression": "root_post_id",
763 "isExpression": false,
764 "asc": true,
765 "nulls": "last"
766 }
767 ],
768 "isUnique": false,
769 "concurrently": false,
770 "method": "btree",
771 "with": {}
772 }
773 },
774 "foreignKeys": {
775 "posts_did_users_did_fk": {
776 "name": "posts_did_users_did_fk",
777 "tableFrom": "posts",
778 "tableTo": "users",
779 "columnsFrom": [
780 "did"
781 ],
782 "columnsTo": [
783 "did"
784 ],
785 "onDelete": "no action",
786 "onUpdate": "no action"
787 },
788 "posts_root_post_id_posts_id_fk": {
789 "name": "posts_root_post_id_posts_id_fk",
790 "tableFrom": "posts",
791 "tableTo": "posts",
792 "columnsFrom": [
793 "root_post_id"
794 ],
795 "columnsTo": [
796 "id"
797 ],
798 "onDelete": "no action",
799 "onUpdate": "no action"
800 },
801 "posts_parent_post_id_posts_id_fk": {
802 "name": "posts_parent_post_id_posts_id_fk",
803 "tableFrom": "posts",
804 "tableTo": "posts",
805 "columnsFrom": [
806 "parent_post_id"
807 ],
808 "columnsTo": [
809 "id"
810 ],
811 "onDelete": "no action",
812 "onUpdate": "no action"
813 }
814 },
815 "compositePrimaryKeys": {},
816 "uniqueConstraints": {},
817 "policies": {},
818 "checkConstraints": {},
819 "isRLSEnabled": false
820 },
821 "public.users": {
822 "name": "users",
823 "schema": "",
824 "columns": {
825 "did": {
826 "name": "did",
827 "type": "text",
828 "primaryKey": true,
829 "notNull": true
830 },
831 "handle": {
832 "name": "handle",
833 "type": "text",
834 "primaryKey": false,
835 "notNull": false
836 },
837 "indexed_at": {
838 "name": "indexed_at",
839 "type": "timestamp with time zone",
840 "primaryKey": false,
841 "notNull": true
842 }
843 },
844 "indexes": {},
845 "foreignKeys": {},
846 "compositePrimaryKeys": {},
847 "uniqueConstraints": {},
848 "policies": {},
849 "checkConstraints": {},
850 "isRLSEnabled": false
851 }
852 },
853 "enums": {},
854 "schemas": {},
855 "sequences": {},
856 "roles": {},
857 "policies": {},
858 "views": {},
859 "_meta": {
860 "columns": {},
861 "schemas": {},
862 "tables": {}
863 }
864}