A simple Bluesky bot to make sense of the noise, with responses powered by Gemini, similar to Grok.
1import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
2import { sql } from "drizzle-orm";
3
4export const conversations = sqliteTable("conversations", {
5 id: text().unique().notNull(),
6 did: text().notNull().unique(),
7 postUri: text("post_uri").notNull(),
8 revision: text().notNull(),
9 createdAt: integer("created_at", { mode: "timestamp" }).default(
10 sql`CURRENT_TIMESTAMP`,
11 )
12 .notNull(),
13 lastActive: integer("last_active", { mode: "timestamp" }).default(
14 sql`CURRENT_TIMESTAMP`,
15 )
16 .notNull(),
17});
18
19export const messages = sqliteTable("messages", {
20 id: integer().primaryKey({ autoIncrement: true }).notNull(),
21 conversationId: text("conversation_id").notNull().references(() =>
22 conversations.id
23 ),
24 revision: text().notNull().references(() => conversations.revision),
25 did: text().notNull(),
26 postUri: text("post_uri").notNull(),
27 text: text().notNull(),
28 created_at: integer({ mode: "timestamp" }).default(sql`CURRENT_TIMESTAMP`)
29 .notNull(),
30});