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