feat(web): add Property Valuation UI with AVM integration

Build the valuation page at /dashboard/valuation with form input,
AI-powered price estimation results, comparable properties display,
and valuation history. Add "Dinh gia AI" button to listing detail
sidebar for quick per-listing estimates.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-09 00:17:12 +07:00
parent 6f3e6998ac
commit 3c6ed4c82a
10 changed files with 792 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import { ImageGallery } from '@/components/listings/image-gallery';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { AiEstimateButton } from '@/components/valuation/ai-estimate-button';
import { listingsApi, type ListingDetail } from '@/lib/listings-api';
import { PROPERTY_TYPES, DIRECTIONS, TRANSACTION_TYPES } from '@/lib/validations/listings';
@@ -264,6 +265,9 @@ export default function PublicListingDetailPage() {
</CardContent>
</Card>
{/* AI Estimate */}
<AiEstimateButton listingId={listing.id} />
{/* Stats */}
<Card>
<CardContent className="pt-6">