homeman-deno/db.ts

28 lines
604 B
TypeScript

import {
createPentagon,
TableDefinition,
} from 'https://deno.land/x/pentagon@v0.1.5/mod.ts'
import { DoneTaskModel, TodoModel, UserModel } from '@homeman/models.ts'
export const kv = await Deno.openKv('homeman.db')
export const schema: Record<string, TableDefinition> = {
users: {
schema: UserModel,
relations: {
assignedTodos: ['todos', [TodoModel], 'id', 'assigneeUserId'],
},
},
todos: {
schema: TodoModel,
relations: {
assignee: ['users', UserModel, 'assigneeUserId', 'id'],
},
},
doneTasks: {
schema: DoneTaskModel,
},
}
export const db = createPentagon(kv, schema)