diff --git a/app/api/generate-comic/route.ts b/app/api/generate-comic/route.ts index 1b1ce8c..df75fee 100644 --- a/app/api/generate-comic/route.ts +++ b/app/api/generate-comic/route.ts @@ -64,6 +64,7 @@ export async function POST(request: NextRequest) { // Determine which API key to use let finalApiKey = apiKey; const isUsingFreeTier = !apiKey; + const usesOwnApiKey = !!apiKey; if (isUsingFreeTier) { // Use default API key for free tier @@ -115,6 +116,7 @@ export async function POST(request: NextRequest) { description: undefined, userId: userId, style, + usesOwnApiKey, }); page = await createPage({ diff --git a/lib/db-actions.ts b/lib/db-actions.ts index d21745e..4aa5f5f 100644 --- a/lib/db-actions.ts +++ b/lib/db-actions.ts @@ -3,7 +3,7 @@ import { stories, pages, type Story, type Page } from './schema'; import { eq } from 'drizzle-orm'; import { generateComicSlug } from './slug-generator'; -export async function createStory(data: { title: string; description?: string; userId: string; style?: string }): Promise { +export async function createStory(data: { title: string; description?: string; userId: string; style?: string; usesOwnApiKey?: boolean }): Promise { // Generate a unique slug let slug = generateComicSlug(); let attempts = 0; diff --git a/lib/schema.ts b/lib/schema.ts index 6312876..0bafbc1 100644 --- a/lib/schema.ts +++ b/lib/schema.ts @@ -1,4 +1,4 @@ -import { pgTable, text, integer, timestamp, uuid, jsonb } from 'drizzle-orm/pg-core'; +import { pgTable, text, integer, timestamp, uuid, jsonb, boolean } from 'drizzle-orm/pg-core'; import { relations } from 'drizzle-orm'; // Stories table @@ -9,6 +9,7 @@ export const stories = pgTable('stories', { description: text('description'), style: text('style').default('noir').notNull(), userId: text('user_id').notNull(), + usesOwnApiKey: boolean('uses_own_api_key').default(false), createdAt: timestamp('created_at').defaultNow().notNull(), updatedAt: timestamp('updated_at').defaultNow().notNull(), });