import { integer, text, unique } from 'drizzle-orm/pg-core'; import { siteSchema } from './schemas'; import { id, timestamps } from './helpers'; export const tasks = siteSchema.table('tasks', { id: id(), name: text('name').notNull(), currentPoints: integer('current_points').notNull().default(0), totalPoints: integer('total_points').notNull().default(1), notes: text('notes'), ...timestamps }); export const topics = siteSchema.table('topics', { id: id(), name: text('name').notNull(), emoji: text('emoji'), ...timestamps }); export const tasksToTopics = siteSchema.table( 'task_topics', { id: id(), taskId: integer('task_id') .notNull() .references(() => tasks.id, { onDelete: 'cascade' }), topicId: integer('topic_id') .notNull() .references(() => topics.id, { onDelete: 'cascade' }), ...timestamps }, (table) => [unique().on(table.taskId, table.topicId)] ); export type Task = typeof tasks.$inferSelect; export type NewTask = typeof tasks.$inferInsert; export type Topic = typeof topics.$inferSelect; export type NewTopic = typeof topics.$inferInsert;