import { Bidding } from '@/db/schema/bidding' import { Building2, Package, User, DollarSign, Calendar } from 'lucide-react' import { contractTypeLabels, biddingTypeLabels } from '@/db/schema/bidding' import { formatDate } from '@/lib/utils' interface BiddingInfoHeaderProps { bidding: Bidding | null } export function BiddingInfoHeader({ bidding }: BiddingInfoHeaderProps) { if (!bidding) { return (
입찰 정보를 불러오는 중...
) } return (
{/* 3개 섹션을 Grid로 배치 - 각 섹션이 동일한 width로 꽉 채움 */}
{/* 왼쪽 섹션: 프로젝트, 품목, 담당자 정보 */}
{/* 프로젝트 정보 */} {bidding.projectName && (
프로젝트
{bidding.projectName}
)} {/* 품목 정보 */} {bidding.itemName && (
품목
{bidding.itemName}
)} {/* 담당자 정보 */} {bidding.managerName && (
담당자
{bidding.managerName}
)} {/* 예산 정보 */} {bidding.budget && (
예산
{new Intl.NumberFormat('ko-KR', { style: 'currency', currency: bidding.currency || 'KRW', }).format(Number(bidding.budget))}
)}
{/* 가운데 섹션: 계약 정보 */}
계약 {contractTypeLabels[bidding.contractType]}
유형 {biddingTypeLabels[bidding.biddingType]}
낙찰 {bidding.awardCount === 'single' ? '단수' : '복수'}
통화 {bidding.currency}
{/* 오른쪽 섹션: 일정 정보 */} {(bidding.submissionStartDate || bidding.evaluationDate || bidding.preQuoteDate || bidding.biddingRegistrationDate) && (
일정 정보
{bidding.submissionStartDate && bidding.submissionEndDate && (
제출기간
{formatDate(bidding.submissionStartDate, 'KR')} ~ {formatDate(bidding.submissionEndDate, 'KR')}
)} {bidding.biddingRegistrationDate && (
입찰등록일
{formatDate(bidding.biddingRegistrationDate, 'KR')}
)} {bidding.preQuoteDate && (
사전견적일
{formatDate(bidding.preQuoteDate, 'KR')}
)} {bidding.evaluationDate && (
평가일
{formatDate(bidding.evaluationDate, 'KR')}
)}
)}
) }