/**
 * @description
 * 게시판 탭의 도메인 인터페이스 모음. 게시글(Post)과 매뉴얼(Manual)의
 * API 응답·요청 구조를 정의한다. 공지사항·자료실·Q&A·해경매뉴얼 서브메뉴
 * 전반에서 공유된다.
 *
 * @author dnlee (dnlee@gcsc.co.kr)
 */

/** 게시판 — 게시글 목록 아이템 (공지/자료실/Q&A 공용) */
export interface BoardPostItem {
  sn: number;
  categoryCd: string;
  title: string;
  authorId: string;
  authorName: string;
  viewCnt: number;
  pinnedYn: string;
  regDtm: string;
}

/** 게시판 — 게시글 상세 (본문·수정일 포함) */
export interface BoardPostDetail extends BoardPostItem {
  content: string | null;
  mdfcnDtm: string | null;
}

/** 게시판 — 목록 조회 응답 래퍼 */
export interface BoardListResponse {
  items: BoardPostItem[];
  totalCount: number;
  page: number;
  size: number;
}

/** 게시판 — 목록 조회 요청 파라미터 (카테고리·검색·페이지) */
export interface BoardListParams {
  categoryCd?: string;
  search?: string;
  page?: number;
  size?: number;
}

/** 게시판 — 게시글 생성 요청 페이로드 */
export interface CreateBoardPostInput {
  categoryCd: string;
  title: string;
  content?: string;
  pinnedYn?: string;
}

/** 게시판 — 게시글 수정 요청 페이로드 (부분 수정) */
export interface UpdateBoardPostInput {
  title?: string;
  content?: string;
  pinnedYn?: string;
}

/** 해경매뉴얼 — 매뉴얼 목록 아이템 */
export interface ManualItem {
  manualSn: number;
  catgNm: string;
  title: string;
  version: string | null;
  fileTp: string | null;
  fileSz: string | null;
  filePath: string | null;
  authorNm: string | null;
  dwnldCnt: number;
  regDtm: string;
}

/** 해경매뉴얼 — 매뉴얼 생성 요청 페이로드 */
export interface CreateManualInput {
  catgNm: string;
  title: string;
  version?: string;
  fileTp?: string;
  fileSz?: string;
  filePath?: string;
  authorNm?: string;
}

/** 해경매뉴얼 — 매뉴얼 수정 요청 페이로드 (부분 수정) */
export interface UpdateManualInput {
  catgNm?: string;
  title?: string;
  version?: string;
  fileTp?: string;
  fileSz?: string;
  filePath?: string;
}
