/**
 * 공지사항 타입 정의
 */

import { formatDate } from '@/lib/utils/date';

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

export interface Notice {
  id: string;
  title: string;
  content: string;
  author: string;
  createdAt: string;
  viewCount: number;
  imageUrl?: string;
  attachments?: Attachment[];
}

export interface Attachment {
  id: string;
  name: string;
  url: string;
  size?: number;
}

/**
 * API 데이터 → 프론트엔드 타입 변환
 */
export function transformPostToNotice(post: import('../shared/types').PostApiData): Notice {
  return {
    id: String(post.id),
    title: post.title,
    content: post.content,
    author: post.author?.name || '관리자',
    createdAt: formatDate(post.created_at),
    viewCount: post.views,
    attachments: post.files?.map(file => ({
      id: String(file.id),
      name: file.original_name,
      url: file.file_path,
      size: file.file_size,
    })),
  };
}

// 정렬 옵션
export type SortOption = 'latest' | 'oldest' | 'views';

export const SORT_OPTIONS: { value: SortOption; label: string }[] = [
  { value: 'latest', label: '최신순' },
  { value: 'oldest', label: '오래된순' },
  { value: 'views', label: '조회순' },
];

// Mock 데이터
export const MOCK_NOTICES: Notice[] = [
  {
    id: '1',
    title: '[중요] 2025년 시스템 정기점검 안내',
    content: `안녕하세요, SAM 시스템 관리자입니다.

2025년 시스템 정기점검 일정을 안내드립니다.

■ 점검 일시: 2025년 9월 15일(일) 00:00 ~ 06:00 (6시간)
■ 점검 내용: 서버 업그레이드 및 보안 패치 적용
■ 영향 범위: 전체 서비스 일시 중단

점검 시간 동안에는 서비스 이용이 불가하오니, 업무에 참고 부탁드립니다.
불편을 드려 죄송합니다.

감사합니다.`,
    author: '홍길동',
    createdAt: '2025-12-19',
    viewCount: 523,
    attachments: [
      { id: 'att1', name: '정기점검_안내문.pdf', url: '/files/notice1.pdf' },
    ],
  },
  {
    id: '2',
    title: '신규 기능 업데이트 안내 - 전자결재 시스템',
    content: `안녕하세요.

SAM 시스템에 새로운 기능이 추가되었습니다.

■ 업데이트 내용
1. 전자결재 시스템 도입
   - 기안함, 결재함, 참조함 기능 추가
   - 모바일에서도 결재 가능

2. 결재 알림 기능
   - 결재 요청 시 푸시 알림
   - 이메일 알림 설정 가능

자세한 사용 방법은 첨부된 매뉴얼을 참고해 주세요.

감사합니다.`,
    author: '김철수',
    createdAt: '2025-12-18',
    viewCount: 342,
    attachments: [
      { id: 'att2', name: '전자결재_사용매뉴얼.pdf', url: '/files/manual.pdf' },
      { id: 'att3', name: '전자결재_FAQ.docx', url: '/files/faq.docx' },
    ],
  },
  {
    id: '3',
    title: '추석 연휴 고객센터 운영 안내',
    content: `안녕하세요.

추석 연휴 기간 고객센터 운영 일정을 안내드립니다.

■ 휴무 기간: 2025년 9월 14일(토) ~ 9월 18일(수)
■ 정상 운영: 2025년 9월 19일(목)부터

긴급 문의는 이메일(support@sam.com)로 남겨주시면,
연휴 후 순차적으로 답변드리겠습니다.

즐거운 추석 명절 보내세요!`,
    author: '이영희',
    createdAt: '2025-12-17',
    viewCount: 256,
  },
  {
    id: '4',
    title: '개인정보처리방침 변경 안내',
    content: `안녕하세요.

개인정보보호법 개정에 따라 개인정보처리방침이 일부 변경되었습니다.

■ 시행일: 2025년 10월 1일
■ 주요 변경 사항
  - 개인정보 보유기간 변경 (3년 → 5년)
  - 제3자 제공 동의 절차 강화
  - 개인정보 파기 절차 명확화

변경된 내용은 첨부파일에서 확인하실 수 있습니다.

감사합니다.`,
    author: '박민수',
    createdAt: '2025-12-16',
    viewCount: 189,
    attachments: [
      { id: 'att4', name: '개인정보처리방침_v2.0.pdf', url: '/files/privacy.pdf' },
    ],
  },
  {
    id: '5',
    title: '8월 정기 업데이트 완료 안내',
    content: `안녕하세요.

8월 정기 업데이트가 완료되었습니다.

■ 업데이트 일시: 2025년 8월 25일 02:00
■ 주요 변경 사항
  - UI/UX 개선
  - 성능 최적화
  - 버그 수정 15건

문제가 발생할 경우 고객센터로 문의 부탁드립니다.

감사합니다.`,
    author: '홍길동',
    createdAt: '2025-12-15',
    viewCount: 412,
  },
  {
    id: '6',
    title: '모바일 앱 출시 안내',
    content: `안녕하세요.

SAM 모바일 앱이 출시되었습니다!

■ 다운로드
  - iOS: App Store에서 'SAM ERP' 검색
  - Android: Play Store에서 'SAM ERP' 검색

■ 주요 기능
  - 출퇴근 기록
  - 휴가 신청
  - 전자결재
  - 실시간 알림

많은 이용 부탁드립니다.`,
    author: '김철수',
    createdAt: '2025-12-14',
    viewCount: 678,
  },
  {
    id: '7',
    title: '서비스 이용약관 변경 안내',
    content: `안녕하세요.

서비스 이용약관이 변경됩니다.

■ 시행일: 2025년 9월 1일
■ 변경 사유: 신규 서비스 추가에 따른 조항 신설

자세한 내용은 첨부파일을 참고해 주세요.`,
    author: '이영희',
    createdAt: '2025-12-13',
    viewCount: 145,
    attachments: [
      { id: 'att5', name: '이용약관_개정안.pdf', url: '/files/terms.pdf' },
    ],
  },
];