forked from
haetae.tngl.sh/fanfic-atproto
personal fork for experimenting
1import { DB_URL, DB_TOKEN } from "astro:env/server";
2
3import { createDatabase } from "db0";
4import { createStorage } from "unstorage";
5import dbDriver from "unstorage/drivers/db0";
6import libSqlConnector from "db0/connectors/libsql/web";
7import { drizzle } from "db0/integrations/drizzle";
8import { sqliteTable, int, text } from "drizzle-orm/sqlite-core";
9
10export const database = createDatabase(
11 libSqlConnector({
12 url: DB_URL,
13 ...import.meta.env.PROD && { authToken: DB_TOKEN },
14 })
15);
16
17export const driver = drizzle(database);
18
19export const storage = createStorage({
20 driver: dbDriver({
21 database,
22 tableName: "fanfic_archive",
23 }),
24});
25
26export const usersTable = sqliteTable("users_table", {
27 id: int().primaryKey({ autoIncrement: true }),
28 handle: text().notNull(),
29 userDid: text().notNull(),
30});
31
32export const worksTable = sqliteTable("works_table", {
33 id: int().primaryKey({ autoIncrement: true }),
34 author: text(),
35 // recordkey
36 title: text(),
37 body: text(),
38});
39
40export const tagsTable = sqliteTable("tags_table", {
41 id: int().primaryKey({ autoIncrement: true }),
42 label: text(),
43 // rkey
44 class: text(),
45 // classrkey?
46});