From 550da310382436b3b010ffc1f931631ff565f00c Mon Sep 17 00:00:00 2001 From: gitea Date: Sun, 9 Aug 2026 22:17:25 +0000 Subject: [PATCH] Production like --- .../api/hotels/[id]/review-summary/route.ts | 7 +- src/app/page.tsx | 86 ++++++++++--------- 2 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/app/api/hotels/[id]/review-summary/route.ts b/src/app/api/hotels/[id]/review-summary/route.ts index f08613a..3759d88 100644 --- a/src/app/api/hotels/[id]/review-summary/route.ts +++ b/src/app/api/hotels/[id]/review-summary/route.ts @@ -4,7 +4,7 @@ import { query } from '@/lib/db'; export async function POST(req: NextRequest, { params }: { params: { id: string } }) { try { const { id } = params; - const { summary_positive, summary_passable, summary_negative } = await req.json(); + const { summary_positive, summary_passable, summary_negative, summary_bathroom } = await req.json(); if (!id) { return NextResponse.json({ error: 'Hotel-ID fehlt' }, { status: 400 }); @@ -15,9 +15,10 @@ export async function POST(req: NextRequest, { params }: { params: { id: string SET review_summary_positive = $1, review_summary_passable = $2, review_summary_negative = $3, + review_summary_bathroom = $4, reviews_updated_at = NOW() - WHERE id = $4`, - [summary_positive, summary_passable, summary_negative, id] + WHERE id = $5`, + [summary_positive, summary_passable, summary_negative, summary_bathroom || null, id] ); return NextResponse.json({ success: true, message: 'Review-Zusammenfassungen gespeichert.' }); diff --git a/src/app/page.tsx b/src/app/page.tsx index 50b6237..6dd959c 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -21,6 +21,7 @@ interface Hotel { review_summary_positive?: string | null; review_summary_passable?: string | null; review_summary_negative?: string | null; + review_summary_bathroom?: string | null; reviews_updated_at?: string | null; } @@ -311,49 +312,56 @@ export default function Dashboard() { ) )} +{/* TAB 2: KI REVIEWS */} +{activeTab === 'reviews' && ( +
+ {!selectedHotel.review_summary_positive ? ( +

+ Noch keine KI-Analyse vorhanden. Klicke oben auf "Alle Hotels scannen", um die Bewertungen zu scrapen. +

+ ) : ( +
+ {/* 1. Bestnoten */} +
+

💚 Bestnoten & Highlights (Positiv)

+
+ {selectedHotel.review_summary_positive} +
+
- {/* TAB 2: KI REVIEWS */} - {activeTab === 'reviews' && ( -
- {!selectedHotel.review_summary_positive ? ( -

- Noch keine KI-Analyse vorhanden. Klicke oben auf "Alle Hotels scannen", um die Bewertungen zu scrapen und auszuwerten. -

- ) : ( -
- {/* 1. Bestnoten */} -
-

💚 Bestnoten & Highlights (Positiv)

-
- {selectedHotel.review_summary_positive} -
-
+ {/* 2. Passabel */} +
+

🟡 Passabel & Neutrales

+
+ {selectedHotel.review_summary_passable} +
+
- {/* 2. Passabel */} -
-

🟡 Passabel & Neutrales

-
- {selectedHotel.review_summary_passable} -
-
+ {/* 3. Schlechteste */} +
+

🔴 Schlechteste & Mängel (Kritik)

+
+ {selectedHotel.review_summary_negative} +
+
- {/* 3. Schlechteste */} -
-

🔴 Schlechteste & Mängel (Kritik)

-
- {selectedHotel.review_summary_negative} -
-
+ {/* 4. BAD & WC FOKUS (NEU) */} +
+

🚽 Bad & WC Fokus

+
+ {selectedHotel.review_summary_bathroom || 'Keine spezifischen Anmerkungen zum Bad/WC in den Kommentaren gefunden.'} +
+
- {selectedHotel.reviews_updated_at && ( - - Zuletzt analysiert: {new Date(selectedHotel.reviews_updated_at).toLocaleString('de-DE')} - - )} -
- )} -
- )} + {selectedHotel.reviews_updated_at && ( + + Zuletzt analysiert: {new Date(selectedHotel.reviews_updated_at).toLocaleString('de-DE')} + + )} +
+ )} +
+)} )}