import { pgTable, uuid, text, jsonb, timestamp, integer, uniqueIndex, boolean } from 'drizzle-orm/pg-core'; import type { CuratorOutput } from '../types/agents.js'; export const recommendations = pgTable('recommendations', { id: uuid('id').defaultRandom().primaryKey(), title: text('title').notNull(), main_prompt: text('main_prompt').notNull(), liked_shows: text('liked_shows').notNull().default(''), disliked_shows: text('disliked_shows').notNull().default(''), themes: text('themes').notNull().default(''), brainstorm_count: integer('brainstorm_count').notNull().default(100), media_type: text('media_type').notNull().default('tv_show'), use_web_search: boolean('use_web_search').notNull().default(false), use_validator: boolean('use_validator').notNull().default(false), hard_requirements: boolean('hard_requirements').notNull().default(false), self_expansive: boolean('self_expansive').notNull().default(false), expansive_passes: integer('expansive_passes').notNull().default(1), expansive_mode: text('expansive_mode').notNull().default('soft'), recommendations: jsonb('recommendations').$type(), status: text('status').notNull().default('pending'), created_at: timestamp('created_at').defaultNow().notNull(), }); export const feedback = pgTable( 'feedback', { id: uuid('id').defaultRandom().primaryKey(), item_name: text('item_name').notNull(), stars: integer('stars').notNull(), feedback: text('feedback').notNull().default(''), created_at: timestamp('created_at').defaultNow().notNull(), }, (table) => [uniqueIndex('feedback_item_name_idx').on(table.item_name)], );