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

// 단가 상태
export type PricingStatus = 'in_use' | 'stopped' | 'not_registered';

// 발주 항목 (동적으로 추가되는 항목)
export interface OrderItem {
  id: string;
  name: string;       // 항목명 (예: 무게)
  value: string;      // 구분 정보 (예: 400KG)
}

// 단가 데이터
export interface Pricing {
  id: string;
  pricingNumber: string;       // 단가번호
  itemType: string;            // 품목유형 (박스, 부속, 소모품, 공과)
  category: string;            // 카테고리
  itemName: string;            // 품목명
  spec: string;                // 규격
  orderItems: OrderItem[];     // 발주항목 (동적 컬럼)
  unit: string;                // 단위
  division: string;            // 구분
  vendor: string;              // 거래처
  purchasePrice: number;       // 매입단가
  marginRate: number;          // 마진율 (%)
  sellingPrice: number;        // 판매단가
  status: PricingStatus;       // 상태
  createdAt: string;           // 생성일
  updatedAt?: string;          // 수정일
}

// 통계 데이터
export interface PricingStats {
  total: number;          // 전체 단가
  inUse: number;          // 사용 단가
  notRegistered: number;  // 미등록 단가
}

// 목록 응답
export interface PricingListResponse {
  items: Pricing[];
  total: number;
  page: number;
  size: number;
  totalPages: number;
}

// 필터 파라미터
export interface PricingFilter {
  search?: string;
  status?: string;
  itemType?: string;
  category?: string;
  division?: string;
  spec?: string;
  page?: number;
  size?: number;
  sortBy?: string;
  startDate?: string;
  endDate?: string;
}

// 폼 데이터
export interface PricingFormData {
  itemType: string;
  category: string;
  itemName: string;
  spec: string;
  orderItems: OrderItem[];
  unit: string;
  division: string;
  vendor: string;
  purchasePrice: number;
  marginRate: number;
  sellingPrice: number;
  status: PricingStatus;
}

// ===== 필터 옵션 =====

// 품목유형 옵션
export const ITEM_TYPE_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'product', label: '제품' },
  { value: 'parts', label: '부품' },
  { value: 'consumables', label: '소모품' },
  { value: 'utility', label: '공과' },
] as const;

// 카테고리 옵션 (기본 + 동적 목록)
export const CATEGORY_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'basic', label: '기본' },
  { value: 'slide_open', label: '슬라이드 OPEN 사이즈' },
  { value: 'motor', label: '모터' },
  { value: 'process_material', label: '공정자재' },
  { value: 'hardware', label: '철물' },
] as const;

// 규격 옵션
export const SPEC_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'certified', label: '인정' },
  { value: 'non_certified', label: '비인정' },
] as const;

// 구분 옵션
export const DIVISION_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'kyungdong', label: '경동발주' },
  { value: 'raw_material', label: '원자재발주' },
  { value: 'outsourcing', label: '외주발주' },
] as const;

// 상태 옵션
export const STATUS_OPTIONS = [
  { value: 'all', label: '전체' },
  { value: 'in_use', label: '사용' },
  { value: 'stopped', label: '중지' },
  { value: 'not_registered', label: '미등록' },
] as const;

// 정렬 옵션
export const SORT_OPTIONS = [
  { value: 'latest', label: '최신순' },
  { value: 'oldest', label: '등록순' },
] as const;

// ===== 상태 스타일 =====
export const PRICING_STATUS_LABELS: Record<PricingStatus, string> = {
  in_use: '사용',
  stopped: '중지',
  not_registered: '미등록',
};

export const PRICING_STATUS_STYLES: Record<PricingStatus, string> = {
  in_use: 'bg-green-100 text-green-800',
  stopped: 'bg-yellow-100 text-yellow-800',
  not_registered: 'bg-gray-100 text-gray-800',
};