/**
 * 단가배포관리 타입 정의
 */

// ===== 단가배포 상태 =====

export type DistributionStatus = 'initial' | 'revision' | 'finalized';

export const DISTRIBUTION_STATUS_LABELS: Record<DistributionStatus, string> = {
  initial: '최초작성',
  revision: '보이수정',
  finalized: '최종확정',
};

export const DISTRIBUTION_STATUS_STYLES: Record<DistributionStatus, { bg: string; text: string; border: string }> = {
  initial: { bg: 'bg-blue-50', text: 'text-blue-700', border: 'border-blue-200' },
  revision: { bg: 'bg-orange-50', text: 'text-orange-700', border: 'border-orange-200' },
  finalized: { bg: 'bg-green-50', text: 'text-green-700', border: 'border-green-200' },
};

// ===== 단가배포 목록 아이템 =====

export interface PriceDistributionListItem {
  id: string;
  distributionNo: string;       // 단가배포번호
  distributionName: string;     // 단가배포명 (YYYY년 MM월)
  status: DistributionStatus;   // 상태
  author: string;               // 작성자
  createdAt: string;            // 등록일
  revisionCount: number;        // 보이수정 횟수
}

// ===== 단가배포 상세 =====

export interface PriceDistributionDetail {
  id: string;
  distributionNo: string;       // 단가배포번호
  distributionName: string;     // 단가배포명
  status: DistributionStatus;   // 상태
  createdAt: string;            // 작성일
  documentNo: string;           // 용지번 (발송번)
  effectiveDate: string;        // 적용시점
  officePhone: string;          // 사무실 연락처
  orderPhone: string;           // 발주전용 연락처
  author: string;               // 작성자
  items: PriceDistributionItem[]; // 단가 목록
}

// ===== 단가배포 품목 항목 =====

export interface PriceDistributionItem {
  id: string;
  pricingCode: string;          // 단가번호
  itemCode: string;             // 품목코드
  itemType: string;             // 품목유형
  itemName: string;             // 품목명
  specification: string;        // 규격
  unit: string;                 // 단위
  purchasePrice: number;        // 매입단가
  processingCost: number;       // 가공비
  marginRate: number;           // 마진율
  salesPrice: number;           // 판매단가
  status: string;               // 상태
  author: string;               // 작성자
  changedDate: string;          // 변경일
}

// ===== 등급 필터 =====

export type TradeGrade = 'A등급' | 'B등급' | 'C등급' | 'D등급';

export const TRADE_GRADE_OPTIONS: { value: TradeGrade; label: string }[] = [
  { value: 'A등급', label: 'A등급' },
  { value: 'B등급', label: 'B등급' },
  { value: 'C등급', label: 'C등급' },
  { value: 'D등급', label: 'D등급' },
];

// ===== 단가배포 폼 데이터 (수정용) =====

export interface PriceDistributionFormData {
  distributionName: string;
  documentNo: string;
  effectiveDate: string;
  officePhone: string;
  orderPhone: string;
}

// ===== 통계 =====

export interface PriceDistributionStats {
  total: number;
  initial: number;
  revision: number;
  finalized: number;
}
