// 이 파일이 하는 일: 종류(kind)·상태(status)·카테고리를 색깔 알약으로 보여주는 배지 컴포넌트.
// 학습 포인트: "코드값 → 한국어 라벨 + 색" 변환표를 한 곳에 모아두면
// 화면마다 라벨이 어긋나는 사고를 막을 수 있다.

const STYLES = {
  // 과제 종류
  MAIN: { label: '본 과제', className: 'badge-primary' },
  EXTRA: { label: '예비 과제', className: 'badge-amber' },
  DESIGN: { label: '디자이너 과제', className: 'badge-teal' },
  // 제출 상태 (과제 제출물 · 코딩 문제 제출물이 함께 쓴다)
  SUBMITTED: { label: '제출됨', className: 'badge-amber' },
  PASSED: { label: '통과', className: 'badge-teal' },
  REVIEWED: { label: '리뷰 완료', className: 'badge-teal' },
  // 문서 카테고리
  GUIDE: { label: '가이드', className: 'badge-primary' },
  CURRICULUM: { label: '커리큘럼', className: 'badge-teal' },
  PLAN: { label: '운영 계획', className: 'badge-amber' },
  RUBRIC: { label: '평가 기준', className: 'badge-rose' },
  LESSON: { label: '수업 자료', className: 'badge-primary' },
  ASSIGNMENT: { label: '과제 안내', className: 'badge-amber' },
  TICKET: { label: '실무 티켓', className: 'badge-teal' },
};

export default function Badge({ value }) {
  // 학습 포인트: 변환표에 없는 값이 와도 앱이 죽지 않도록 기본값(원래 코드값 그대로)을 둔다.
  // 서버에 새 상태가 추가돼도 화면은 일단 깨지지 않고, 표에 한 줄만 더하면 된다.
  const style = STYLES[value] || { label: value, className: 'badge-primary' };
  return <span className={`badge ${style.className}`}>{style.label}</span>;
}
