/**
 * FAQ 관련 타입 정의
 */

// API 타입 re-export
export type { PostApiData, PostPaginationResponse } from '../shared/types';

/**
 * API 데이터 → 프론트엔드 타입 변환
 */
export function transformPostToFAQ(post: import('../shared/types').PostApiData): FAQ {
  // FAQ는 title을 question으로, content를 answer로 사용
  // category는 custom_field_values에서 가져옴
  const categoryField = post.custom_field_values?.find(f => f.field_key === 'category');

  return {
    id: String(post.id),
    category: categoryField?.field_value || 'etc',
    question: post.title,
    answer: post.content,
  };
}

export interface FAQ {
  id: string;
  category: string;
  question: string;
  answer: string;
}

export interface FAQCategory {
  id: string;
  name: string;
}

// 카테고리 목록
export const FAQ_CATEGORIES: FAQCategory[] = [
  { id: 'all', name: '전체' },
  { id: 'account', name: '계정' },
  { id: 'payment', name: '결제' },
  { id: 'service', name: '서비스' },
  { id: 'hr', name: '인사관리' },
  { id: 'accounting', name: '회계' },
  { id: 'etc', name: '기타' },
];

// 목업 데이터
export const MOCK_FAQS: FAQ[] = [
  {
    id: '1',
    category: 'account',
    question: '비밀번호를 변경하고 싶어요.',
    answer: '설정 > 계정정보에서 비밀번호를 변경할 수 있습니다. 보안을 위해 주기적인 비밀번호 변경을 권장합니다.',
  },
  {
    id: '2',
    category: 'account',
    question: '회원 탈퇴는 어떻게 하나요?',
    answer: '설정 > 계정정보 > 탈퇴하기 버튼을 클릭하여 회원 탈퇴를 진행할 수 있습니다. 단, 테넌트 마스터인 경우 탈퇴가 불가능합니다.',
  },
  {
    id: '3',
    category: 'payment',
    question: '결제 수단을 변경하고 싶어요.',
    answer: '구독관리 > 결제수단 변경에서 카드 정보를 수정할 수 있습니다.',
  },
  {
    id: '4',
    category: 'payment',
    question: '환불은 어떻게 받을 수 있나요?',
    answer: '환불 규정에 따라 결제일로부터 7일 이내 미사용 시 전액 환불이 가능합니다. 1:1 문의를 통해 환불 요청해 주세요.',
  },
  {
    id: '5',
    category: 'service',
    question: '서비스 이용 시간이 어떻게 되나요?',
    answer: '서비스는 24시간 365일 이용 가능합니다. 단, 정기 점검 시간(매주 화요일 02:00-04:00)에는 일시적으로 이용이 제한될 수 있습니다.',
  },
  {
    id: '6',
    category: 'service',
    question: '데이터 백업은 어떻게 하나요?',
    answer: '데이터는 자동으로 매일 백업되며, 설정 > 데이터 관리에서 수동 백업도 가능합니다.',
  },
  {
    id: '7',
    category: 'hr',
    question: '사원 등록은 어떻게 하나요?',
    answer: '인사관리 > 사원관리 > 등록 버튼을 클릭하여 새로운 사원을 등록할 수 있습니다.',
  },
  {
    id: '8',
    category: 'hr',
    question: '휴가 승인 절차가 어떻게 되나요?',
    answer: '휴가 신청 시 직속 상관에게 결재 요청이 전송되며, 승인 후 휴가가 확정됩니다.',
  },
  {
    id: '9',
    category: 'accounting',
    question: '세금계산서 발행은 어떻게 하나요?',
    answer: '회계관리 > 매출관리에서 해당 거래를 선택 후 세금계산서 발행 버튼을 클릭하세요.',
  },
  {
    id: '10',
    category: 'etc',
    question: '모바일에서도 사용 가능한가요?',
    answer: '네, 모바일 웹 브라우저에서 동일하게 이용 가능합니다. 출퇴근 기능은 모바일에 최적화되어 있습니다.',
  },
];