forked from
haetae.tngl.sh/fanfic-atproto
personal fork for experimenting
1import { column, defineDb, defineTable, NOW } from 'astro:db';
2
3const Users = defineTable({
4 columns: {
5 id: column.number({ primaryKey: true }),
6 userDid: column.text({ name: "user_did", unique: true }),
7 joinedAt: column.date({ name: "joined_at", default: NOW }),
8 },
9 indexes: [
10 { on: ["userDid"], unique: true },
11 ],
12});
13
14const Works = defineTable({
15 columns: {
16 id: column.number({ primaryKey: true }),
17 slug: column.text({ unique: true }),
18 author: column.text({ references: () => Users.columns.userDid }),
19 // recordkey
20 title: column.text(),
21 content: column.text({ multiline: true }),
22 tags: column.json(),
23 createdAt: column.date({ name: "created_at", default: NOW }),
24 updatedAt: column.date({ name: "updated_at", optional: true }),
25 },
26 indexes: [
27 { on: ["slug", "createdAt"], unique: true },
28 ],
29});
30
31export default defineDb({
32 tables: {
33 Users,
34 Works,
35 },
36});
37