import { motion } from 'motion/react'; import { Calendar, Users, MapPin, Phone, Award, Star, Globe } from 'lucide-react'; import { SectionWrapper } from './ui/SectionWrapper'; import type { ClinicSnapshot as ClinicSnapshotType } from '../../types/report'; interface ClinicSnapshotProps { data: ClinicSnapshotType; } function formatNumber(n: number): string { if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(2)}M`; if (n >= 1_000) return `${(n / 1_000).toFixed(0)}K`; return n.toLocaleString(); } const infoFields = (data: ClinicSnapshotType) => [ { label: '개원', value: `${data.established} (${data.yearsInBusiness}년)`, icon: Calendar }, { label: '의료진', value: `${data.staffCount}명`, icon: Users }, { label: '강남언니 평점', value: `${data.overallRating} / 5.0`, icon: Star }, { label: '리뷰 수', value: formatNumber(data.totalReviews), icon: Star }, { label: '시술 가격대', value: `${data.priceRange.min} ~ ${data.priceRange.max}`, icon: Globe }, { label: '위치', value: `${data.location} (${data.nearestStation})`, icon: MapPin }, { label: '전화', value: data.phone, icon: Phone }, { label: '도메인', value: data.domain, icon: Globe }, ]; export default function ClinicSnapshot({ data }: ClinicSnapshotProps) { const fields = infoFields(data); return (
{fields.map((field, i) => { const Icon = field.icon; return (

{field.label}

{field.value}

); })}
{/* Lead Doctor Highlight */}

대표 원장

{data.leadDoctor.name}

{data.leadDoctor.credentials}

{Array.from({ length: 5 }).map((_, i) => ( ))} {data.leadDoctor.rating}
리뷰 {formatNumber(data.leadDoctor.reviewCount)}건
{/* Certifications */} {data.certifications.length > 0 && (

인증 및 자격

{data.certifications.map((cert) => ( {cert} ))}
)}
); }