Production like

This commit is contained in:
2026-08-09 22:17:25 +00:00
parent 6b80d628f3
commit 550da31038
2 changed files with 51 additions and 42 deletions

View File

@@ -4,7 +4,7 @@ import { query } from '@/lib/db';
export async function POST(req: NextRequest, { params }: { params: { id: string } }) { export async function POST(req: NextRequest, { params }: { params: { id: string } }) {
try { try {
const { id } = params; 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) { if (!id) {
return NextResponse.json({ error: 'Hotel-ID fehlt' }, { status: 400 }); 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, SET review_summary_positive = $1,
review_summary_passable = $2, review_summary_passable = $2,
review_summary_negative = $3, review_summary_negative = $3,
review_summary_bathroom = $4,
reviews_updated_at = NOW() reviews_updated_at = NOW()
WHERE id = $4`, WHERE id = $5`,
[summary_positive, summary_passable, summary_negative, id] [summary_positive, summary_passable, summary_negative, summary_bathroom || null, id]
); );
return NextResponse.json({ success: true, message: 'Review-Zusammenfassungen gespeichert.' }); return NextResponse.json({ success: true, message: 'Review-Zusammenfassungen gespeichert.' });

View File

@@ -21,6 +21,7 @@ interface Hotel {
review_summary_positive?: string | null; review_summary_positive?: string | null;
review_summary_passable?: string | null; review_summary_passable?: string | null;
review_summary_negative?: string | null; review_summary_negative?: string | null;
review_summary_bathroom?: string | null;
reviews_updated_at?: string | null; reviews_updated_at?: string | null;
} }
@@ -311,13 +312,12 @@ export default function Dashboard() {
</table> </table>
) )
)} )}
{/* TAB 2: KI REVIEWS */} {/* TAB 2: KI REVIEWS */}
{activeTab === 'reviews' && ( {activeTab === 'reviews' && (
<div> <div>
{!selectedHotel.review_summary_positive ? ( {!selectedHotel.review_summary_positive ? (
<p style={{ color: '#888', fontStyle: 'italic', textAlign: 'center', padding: '2rem' }}> <p style={{ color: '#888', fontStyle: 'italic', textAlign: 'center', padding: '2rem' }}>
Noch keine KI-Analyse vorhanden. Klicke oben auf "Alle Hotels scannen", um die Bewertungen zu scrapen und auszuwerten. Noch keine KI-Analyse vorhanden. Klicke oben auf "Alle Hotels scannen", um die Bewertungen zu scrapen.
</p> </p>
) : ( ) : (
<div style={{ display: 'flex', flexDirection: 'column', gap: '1.2rem' }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '1.2rem' }}>
@@ -345,6 +345,14 @@ export default function Dashboard() {
</div> </div>
</div> </div>
{/* 4. BAD & WC FOKUS (NEU) */}
<div style={{ background: '#e0f7fa', padding: '1.2rem', borderRadius: '8px', borderLeft: '5px solid #00acc1' }}>
<h4 style={{ margin: '0 0 0.5rem 0', color: '#006064' }}>🚽 Bad & WC Fokus</h4>
<div style={{ whiteSpace: 'pre-line', fontSize: '0.9rem', color: '#006064' }}>
{selectedHotel.review_summary_bathroom || 'Keine spezifischen Anmerkungen zum Bad/WC in den Kommentaren gefunden.'}
</div>
</div>
{selectedHotel.reviews_updated_at && ( {selectedHotel.reviews_updated_at && (
<small style={{ color: '#888', textAlign: 'right' }}> <small style={{ color: '#888', textAlign: 'right' }}>
Zuletzt analysiert: {new Date(selectedHotel.reviews_updated_at).toLocaleString('de-DE')} Zuletzt analysiert: {new Date(selectedHotel.reviews_updated_at).toLocaleString('de-DE')}