decentralised message store

feat: db schema helpers

serenity 6b0474df c2db7e7d

Changed files
+9
src
db
schema
+9
src/db/schema/messages.ts
···
import { sql } from "drizzle-orm";
import { integer, text, index } from "drizzle-orm/sqlite-core";
import { sqliteTable } from "drizzle-orm/sqlite-core";
+
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
+
import { z } from "zod";
// NOTE:: for an initial mvp, we are supporting only sqlite and storing all the messages in a single table.
// for an actual production release, we will likely be storing messages in separate tables or separate sqlite files (depending on config).
···
index("messages_author_idx").on(table.authorDid),
],
);
+
+
export const messagesSelectSchema = createSelectSchema(messagesTable);
+
export const messageSelectSchemaArray = z.array(messagesSelectSchema);
+
export const messagesInsertSchema = createInsertSchema(messagesTable);
+
+
export type ShardMessageSelect = z.infer<typeof messagesSelectSchema>;
+
export type ShardMessageInsert = z.infer<typeof messagesInsertSchema>;