An atproto based writing game loosely inspired by Fiasco!
1"use server";
2
3import { integer, pgTable, varchar, text, timestamp } from "drizzle-orm/pg-core";
4
5export const postTable = pgTable("post", {
6 id: integer().primaryKey().generatedAlwaysAsIdentity(),
7 uri: varchar({ length: 512 }),
8 authorDid: varchar({ length: 255 }),
9 message: varchar({ length: 255 }).notNull(),
10 author: varchar({ length: 255 }).notNull(),
11 createdAt: timestamp(),
12 indexedAt: timestamp().defaultNow()
13});
14
15export const authSessionTable = pgTable("auth_session", {
16 key: varchar({ length: 255 }).primaryKey(),
17 session: text().notNull()
18});
19
20export const authStateTable = pgTable("auth_state", {
21 key: varchar({ length: 255 }).primaryKey(),
22 state: text().notNull()
23});
24
25export const userTable = pgTable("user", {
26 did: varchar({ length: 255 }).primaryKey(),
27 handle: varchar({ length: 255 }).notNull(),
28 createdAt: timestamp().notNull().defaultNow()
29});
30
31export const userSessionTable = pgTable("user_session", {
32 sessionId: varchar({ length: 255 }).primaryKey(),
33 did: varchar({ length: 255 }).notNull().references(() => userTable.did, { onDelete: 'cascade' }),
34 createdAt: timestamp().notNull().defaultNow(),
35 expiresAt: timestamp().notNull()
36});