import { NextResponse } from 'next/server';
import { getAdminDb } from '@/lib/firebase/admin';
import { FieldValue } from 'firebase-admin/firestore';

export async function POST(request: Request) {
  try {
    const body = await request.json().catch(() => ({}));
    const projectId = (body.projectId ?? '').trim();

    if (!projectId) {
      return NextResponse.json(
        { error: 'projectId is required' },
        { status: 400 },
      );
    }

    const adminDb = getAdminDb();
    const docRef = adminDb.collection('chat_conversations').doc(projectId);

    await adminDb.runTransaction(async (tx) => {
      const snapshot = await tx.get(docRef);
      const existing = (snapshot.exists ? (snapshot.data()?.messages as unknown[]) : []) ?? [];

      const now = new Date().toISOString();

      const newMessages = [
        {
          role: 'user' as const,
          content: '[debug] test user message',
          createdAt: now,
        },
        {
          role: 'assistant' as const,
          content: '[debug] test assistant reply',
          createdAt: now,
        },
      ];

      tx.set(
        docRef,
        {
          projectId,
          messages: [...existing, ...newMessages],
          updatedAt: FieldValue.serverTimestamp(),
        },
        { merge: true },
      );
    });

    return NextResponse.json({ success: true });
  } catch (error) {
    console.error('[debug/append-conversation] Failed to append messages', error);
    return NextResponse.json(
      {
        error: 'Failed to append debug conversation messages',
        details: error instanceof Error ? error.message : String(error),
      },
      { status: 500 },
    );
  }
}


