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": "c52ee650-b32a-4fd5-8523-4a8f39586ccc",
3 "prevId": "00000000-0000-0000-0000-000000000000",
4 "version": "7",
5 "dialect": "postgresql",
6 "tables": {
7 "public.categories": {
8 "name": "categories",
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 "forum_id": {
60 "name": "forum_id",
61 "type": "bigint",
62 "primaryKey": false,
63 "notNull": false
64 },
65 "created_at": {
66 "name": "created_at",
67 "type": "timestamp with time zone",
68 "primaryKey": false,
69 "notNull": true
70 },
71 "indexed_at": {
72 "name": "indexed_at",
73 "type": "timestamp with time zone",
74 "primaryKey": false,
75 "notNull": true
76 }
77 },
78 "indexes": {
79 "categories_did_rkey_idx": {
80 "name": "categories_did_rkey_idx",
81 "columns": [
82 {
83 "expression": "did",
84 "isExpression": false,
85 "asc": true,
86 "nulls": "last"
87 },
88 {
89 "expression": "rkey",
90 "isExpression": false,
91 "asc": true,
92 "nulls": "last"
93 }
94 ],
95 "isUnique": true,
96 "concurrently": false,
97 "method": "btree",
98 "with": {}
99 }
100 },
101 "foreignKeys": {
102 "categories_forum_id_forums_id_fk": {
103 "name": "categories_forum_id_forums_id_fk",
104 "tableFrom": "categories",
105 "tableTo": "forums",
106 "columnsFrom": [
107 "forum_id"
108 ],
109 "columnsTo": [
110 "id"
111 ],
112 "onDelete": "no action",
113 "onUpdate": "no action"
114 }
115 },
116 "compositePrimaryKeys": {},
117 "uniqueConstraints": {},
118 "policies": {},
119 "checkConstraints": {},
120 "isRLSEnabled": false
121 },
122 "public.forums": {
123 "name": "forums",
124 "schema": "",
125 "columns": {
126 "id": {
127 "name": "id",
128 "type": "bigserial",
129 "primaryKey": true,
130 "notNull": true
131 },
132 "did": {
133 "name": "did",
134 "type": "text",
135 "primaryKey": false,
136 "notNull": true
137 },
138 "rkey": {
139 "name": "rkey",
140 "type": "text",
141 "primaryKey": false,
142 "notNull": true
143 },
144 "cid": {
145 "name": "cid",
146 "type": "text",
147 "primaryKey": false,
148 "notNull": true
149 },
150 "name": {
151 "name": "name",
152 "type": "text",
153 "primaryKey": false,
154 "notNull": true
155 },
156 "description": {
157 "name": "description",
158 "type": "text",
159 "primaryKey": false,
160 "notNull": false
161 },
162 "indexed_at": {
163 "name": "indexed_at",
164 "type": "timestamp with time zone",
165 "primaryKey": false,
166 "notNull": true
167 }
168 },
169 "indexes": {
170 "forums_did_rkey_idx": {
171 "name": "forums_did_rkey_idx",
172 "columns": [
173 {
174 "expression": "did",
175 "isExpression": false,
176 "asc": true,
177 "nulls": "last"
178 },
179 {
180 "expression": "rkey",
181 "isExpression": false,
182 "asc": true,
183 "nulls": "last"
184 }
185 ],
186 "isUnique": true,
187 "concurrently": false,
188 "method": "btree",
189 "with": {}
190 }
191 },
192 "foreignKeys": {},
193 "compositePrimaryKeys": {},
194 "uniqueConstraints": {},
195 "policies": {},
196 "checkConstraints": {},
197 "isRLSEnabled": false
198 },
199 "public.memberships": {
200 "name": "memberships",
201 "schema": "",
202 "columns": {
203 "id": {
204 "name": "id",
205 "type": "bigserial",
206 "primaryKey": true,
207 "notNull": true
208 },
209 "did": {
210 "name": "did",
211 "type": "text",
212 "primaryKey": false,
213 "notNull": true
214 },
215 "rkey": {
216 "name": "rkey",
217 "type": "text",
218 "primaryKey": false,
219 "notNull": true
220 },
221 "cid": {
222 "name": "cid",
223 "type": "text",
224 "primaryKey": false,
225 "notNull": true
226 },
227 "forum_id": {
228 "name": "forum_id",
229 "type": "bigint",
230 "primaryKey": false,
231 "notNull": false
232 },
233 "forum_uri": {
234 "name": "forum_uri",
235 "type": "text",
236 "primaryKey": false,
237 "notNull": true
238 },
239 "role": {
240 "name": "role",
241 "type": "text",
242 "primaryKey": false,
243 "notNull": false
244 },
245 "role_uri": {
246 "name": "role_uri",
247 "type": "text",
248 "primaryKey": false,
249 "notNull": false
250 },
251 "joined_at": {
252 "name": "joined_at",
253 "type": "timestamp with time zone",
254 "primaryKey": false,
255 "notNull": false
256 },
257 "created_at": {
258 "name": "created_at",
259 "type": "timestamp with time zone",
260 "primaryKey": false,
261 "notNull": true
262 },
263 "indexed_at": {
264 "name": "indexed_at",
265 "type": "timestamp with time zone",
266 "primaryKey": false,
267 "notNull": true
268 }
269 },
270 "indexes": {
271 "memberships_did_rkey_idx": {
272 "name": "memberships_did_rkey_idx",
273 "columns": [
274 {
275 "expression": "did",
276 "isExpression": false,
277 "asc": true,
278 "nulls": "last"
279 },
280 {
281 "expression": "rkey",
282 "isExpression": false,
283 "asc": true,
284 "nulls": "last"
285 }
286 ],
287 "isUnique": true,
288 "concurrently": false,
289 "method": "btree",
290 "with": {}
291 },
292 "memberships_did_idx": {
293 "name": "memberships_did_idx",
294 "columns": [
295 {
296 "expression": "did",
297 "isExpression": false,
298 "asc": true,
299 "nulls": "last"
300 }
301 ],
302 "isUnique": false,
303 "concurrently": false,
304 "method": "btree",
305 "with": {}
306 }
307 },
308 "foreignKeys": {
309 "memberships_did_users_did_fk": {
310 "name": "memberships_did_users_did_fk",
311 "tableFrom": "memberships",
312 "tableTo": "users",
313 "columnsFrom": [
314 "did"
315 ],
316 "columnsTo": [
317 "did"
318 ],
319 "onDelete": "no action",
320 "onUpdate": "no action"
321 },
322 "memberships_forum_id_forums_id_fk": {
323 "name": "memberships_forum_id_forums_id_fk",
324 "tableFrom": "memberships",
325 "tableTo": "forums",
326 "columnsFrom": [
327 "forum_id"
328 ],
329 "columnsTo": [
330 "id"
331 ],
332 "onDelete": "no action",
333 "onUpdate": "no action"
334 }
335 },
336 "compositePrimaryKeys": {},
337 "uniqueConstraints": {},
338 "policies": {},
339 "checkConstraints": {},
340 "isRLSEnabled": false
341 },
342 "public.mod_actions": {
343 "name": "mod_actions",
344 "schema": "",
345 "columns": {
346 "id": {
347 "name": "id",
348 "type": "bigserial",
349 "primaryKey": true,
350 "notNull": true
351 },
352 "did": {
353 "name": "did",
354 "type": "text",
355 "primaryKey": false,
356 "notNull": true
357 },
358 "rkey": {
359 "name": "rkey",
360 "type": "text",
361 "primaryKey": false,
362 "notNull": true
363 },
364 "cid": {
365 "name": "cid",
366 "type": "text",
367 "primaryKey": false,
368 "notNull": true
369 },
370 "action": {
371 "name": "action",
372 "type": "text",
373 "primaryKey": false,
374 "notNull": true
375 },
376 "subject_did": {
377 "name": "subject_did",
378 "type": "text",
379 "primaryKey": false,
380 "notNull": false
381 },
382 "subject_post_uri": {
383 "name": "subject_post_uri",
384 "type": "text",
385 "primaryKey": false,
386 "notNull": false
387 },
388 "forum_id": {
389 "name": "forum_id",
390 "type": "bigint",
391 "primaryKey": false,
392 "notNull": false
393 },
394 "reason": {
395 "name": "reason",
396 "type": "text",
397 "primaryKey": false,
398 "notNull": false
399 },
400 "created_by": {
401 "name": "created_by",
402 "type": "text",
403 "primaryKey": false,
404 "notNull": true
405 },
406 "expires_at": {
407 "name": "expires_at",
408 "type": "timestamp with time zone",
409 "primaryKey": false,
410 "notNull": false
411 },
412 "created_at": {
413 "name": "created_at",
414 "type": "timestamp with time zone",
415 "primaryKey": false,
416 "notNull": true
417 },
418 "indexed_at": {
419 "name": "indexed_at",
420 "type": "timestamp with time zone",
421 "primaryKey": false,
422 "notNull": true
423 }
424 },
425 "indexes": {
426 "mod_actions_did_rkey_idx": {
427 "name": "mod_actions_did_rkey_idx",
428 "columns": [
429 {
430 "expression": "did",
431 "isExpression": false,
432 "asc": true,
433 "nulls": "last"
434 },
435 {
436 "expression": "rkey",
437 "isExpression": false,
438 "asc": true,
439 "nulls": "last"
440 }
441 ],
442 "isUnique": true,
443 "concurrently": false,
444 "method": "btree",
445 "with": {}
446 }
447 },
448 "foreignKeys": {
449 "mod_actions_forum_id_forums_id_fk": {
450 "name": "mod_actions_forum_id_forums_id_fk",
451 "tableFrom": "mod_actions",
452 "tableTo": "forums",
453 "columnsFrom": [
454 "forum_id"
455 ],
456 "columnsTo": [
457 "id"
458 ],
459 "onDelete": "no action",
460 "onUpdate": "no action"
461 }
462 },
463 "compositePrimaryKeys": {},
464 "uniqueConstraints": {},
465 "policies": {},
466 "checkConstraints": {},
467 "isRLSEnabled": false
468 },
469 "public.posts": {
470 "name": "posts",
471 "schema": "",
472 "columns": {
473 "id": {
474 "name": "id",
475 "type": "bigserial",
476 "primaryKey": true,
477 "notNull": true
478 },
479 "did": {
480 "name": "did",
481 "type": "text",
482 "primaryKey": false,
483 "notNull": true
484 },
485 "rkey": {
486 "name": "rkey",
487 "type": "text",
488 "primaryKey": false,
489 "notNull": true
490 },
491 "cid": {
492 "name": "cid",
493 "type": "text",
494 "primaryKey": false,
495 "notNull": true
496 },
497 "text": {
498 "name": "text",
499 "type": "text",
500 "primaryKey": false,
501 "notNull": true
502 },
503 "forum_uri": {
504 "name": "forum_uri",
505 "type": "text",
506 "primaryKey": false,
507 "notNull": false
508 },
509 "root_post_id": {
510 "name": "root_post_id",
511 "type": "bigint",
512 "primaryKey": false,
513 "notNull": false
514 },
515 "parent_post_id": {
516 "name": "parent_post_id",
517 "type": "bigint",
518 "primaryKey": false,
519 "notNull": false
520 },
521 "root_uri": {
522 "name": "root_uri",
523 "type": "text",
524 "primaryKey": false,
525 "notNull": false
526 },
527 "parent_uri": {
528 "name": "parent_uri",
529 "type": "text",
530 "primaryKey": false,
531 "notNull": false
532 },
533 "created_at": {
534 "name": "created_at",
535 "type": "timestamp with time zone",
536 "primaryKey": false,
537 "notNull": true
538 },
539 "indexed_at": {
540 "name": "indexed_at",
541 "type": "timestamp with time zone",
542 "primaryKey": false,
543 "notNull": true
544 },
545 "deleted": {
546 "name": "deleted",
547 "type": "boolean",
548 "primaryKey": false,
549 "notNull": true,
550 "default": false
551 }
552 },
553 "indexes": {
554 "posts_did_rkey_idx": {
555 "name": "posts_did_rkey_idx",
556 "columns": [
557 {
558 "expression": "did",
559 "isExpression": false,
560 "asc": true,
561 "nulls": "last"
562 },
563 {
564 "expression": "rkey",
565 "isExpression": false,
566 "asc": true,
567 "nulls": "last"
568 }
569 ],
570 "isUnique": true,
571 "concurrently": false,
572 "method": "btree",
573 "with": {}
574 },
575 "posts_forum_uri_idx": {
576 "name": "posts_forum_uri_idx",
577 "columns": [
578 {
579 "expression": "forum_uri",
580 "isExpression": false,
581 "asc": true,
582 "nulls": "last"
583 }
584 ],
585 "isUnique": false,
586 "concurrently": false,
587 "method": "btree",
588 "with": {}
589 },
590 "posts_root_post_id_idx": {
591 "name": "posts_root_post_id_idx",
592 "columns": [
593 {
594 "expression": "root_post_id",
595 "isExpression": false,
596 "asc": true,
597 "nulls": "last"
598 }
599 ],
600 "isUnique": false,
601 "concurrently": false,
602 "method": "btree",
603 "with": {}
604 }
605 },
606 "foreignKeys": {
607 "posts_did_users_did_fk": {
608 "name": "posts_did_users_did_fk",
609 "tableFrom": "posts",
610 "tableTo": "users",
611 "columnsFrom": [
612 "did"
613 ],
614 "columnsTo": [
615 "did"
616 ],
617 "onDelete": "no action",
618 "onUpdate": "no action"
619 },
620 "posts_root_post_id_posts_id_fk": {
621 "name": "posts_root_post_id_posts_id_fk",
622 "tableFrom": "posts",
623 "tableTo": "posts",
624 "columnsFrom": [
625 "root_post_id"
626 ],
627 "columnsTo": [
628 "id"
629 ],
630 "onDelete": "no action",
631 "onUpdate": "no action"
632 },
633 "posts_parent_post_id_posts_id_fk": {
634 "name": "posts_parent_post_id_posts_id_fk",
635 "tableFrom": "posts",
636 "tableTo": "posts",
637 "columnsFrom": [
638 "parent_post_id"
639 ],
640 "columnsTo": [
641 "id"
642 ],
643 "onDelete": "no action",
644 "onUpdate": "no action"
645 }
646 },
647 "compositePrimaryKeys": {},
648 "uniqueConstraints": {},
649 "policies": {},
650 "checkConstraints": {},
651 "isRLSEnabled": false
652 },
653 "public.users": {
654 "name": "users",
655 "schema": "",
656 "columns": {
657 "did": {
658 "name": "did",
659 "type": "text",
660 "primaryKey": true,
661 "notNull": true
662 },
663 "handle": {
664 "name": "handle",
665 "type": "text",
666 "primaryKey": false,
667 "notNull": false
668 },
669 "indexed_at": {
670 "name": "indexed_at",
671 "type": "timestamp with time zone",
672 "primaryKey": false,
673 "notNull": true
674 }
675 },
676 "indexes": {},
677 "foreignKeys": {},
678 "compositePrimaryKeys": {},
679 "uniqueConstraints": {},
680 "policies": {},
681 "checkConstraints": {},
682 "isRLSEnabled": false
683 }
684 },
685 "enums": {},
686 "schemas": {},
687 "sequences": {},
688 "roles": {},
689 "policies": {},
690 "views": {},
691 "_meta": {
692 "columns": {},
693 "schemas": {},
694 "tables": {}
695 }
696}