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 nickname: column.text({ unique: true, optional: true }),
7 userDid: column.text({ name: "user_did", unique: true }),
8 joinedAt: column.date({ name: "joined_at", default: NOW }),
9 },
10 indexes: [
11 { on: ["userDid"], unique: true },
12 ],
13});
14
15const Works = defineTable({
16 columns: {
17 id: column.number({ primaryKey: true }),
18 slug: column.text({ unique: true }),
19 author: column.text({ references: () => Users.columns.userDid }),
20 // recordkey
21 title: column.text(),
22 content: column.text({ multiline: true }),
23 tags: column.json(),
24 createdAt: column.date({ name: "created_at", default: NOW }),
25 updatedAt: column.date({ name: "updated_at", optional: true }),
26 },
27 indexes: [
28 { on: ["slug", "createdAt"], unique: true },
29 ],
30});
31
32export default defineDb({
33 tables: {
34 Users,
35 Works,
36 },
37});
38