diff --git a/memento-note/app/api/ai/organize-notebook/route.ts b/memento-note/app/api/ai/organize-notebook/route.ts
index 3edf308..0663f25 100644
--- a/memento-note/app/api/ai/organize-notebook/route.ts
+++ b/memento-note/app/api/ai/organize-notebook/route.ts
@@ -3,6 +3,7 @@ import { auth } from '@/auth'
import prisma from '@/lib/prisma'
import { notebookOrganizerService } from '@/lib/ai/services/notebook-organizer.service'
import { checkEntitlementOrThrow, QuotaExceededError, incrementUsageAsync } from '@/lib/entitlements'
+import { syncNoteLabels } from '@/app/actions/notes'
export async function POST(request: NextRequest) {
try {
@@ -55,3 +56,41 @@ export async function POST(request: NextRequest) {
return NextResponse.json({ error: error.message || 'Failed to organize notebook' }, { status: 500 })
}
}
+
+export async function PATCH(request: NextRequest) {
+ try {
+ const session = await auth()
+ if (!session?.user?.id) {
+ return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
+ }
+
+ const { action, tagName, noteIds, notebookId } = await request.json()
+
+ if (action === 'apply_tag' && tagName && Array.isArray(noteIds)) {
+ // Fetch existing labels for each note, merge with new tag
+ for (const noteId of noteIds) {
+ const note = await prisma.note.findUnique({
+ where: { id: noteId },
+ select: { labels: true, notebookId: true },
+ })
+ if (!note) continue
+
+ let existingLabels: string[] = []
+ try { existingLabels = note.labels ? JSON.parse(note.labels) : [] } catch {}
+
+ if (!existingLabels.includes(tagName)) {
+ existingLabels.push(tagName)
+ }
+
+ await syncNoteLabels(noteId, existingLabels, note.notebookId, session.user.id)
+ }
+
+ return NextResponse.json({ success: true, applied: noteIds.length })
+ }
+
+ return NextResponse.json({ error: 'Invalid action' }, { status: 400 })
+ } catch (error: any) {
+ console.error('[Notebook Organizer PATCH] Error:', error)
+ return NextResponse.json({ error: error.message }, { status: 500 })
+ }
+}
diff --git a/memento-note/components/home-client.tsx b/memento-note/components/home-client.tsx
index dddaebe..d94c3e3 100644
--- a/memento-note/components/home-client.tsx
+++ b/memento-note/components/home-client.tsx
@@ -1068,7 +1068,8 @@ export function HomeClient({
>