/** * @license * SPDX-License-Identifier: Apache-2.0 */ // ───────────────────────────────────────────────────────────── // 인증 사용자 정보 (LDAP AD 응답 기반) // ───────────────────────────────────────────────────────────── export interface AuthUser { name: string; username: string; department: string; company: string; email: string; section: string; title: string; } // ───────────────────────────────────────────────────────────── // 검색 결과 타입 // ───────────────────────────────────────────────────────────── export interface ResultPage { page: number | null; score: number; rerank_score: number | null; content: string | null; thumbnail: string; display_rel_path: string | null; image_name: string | null; source: string; } export interface SearchResult { id: string; title: string; summary: string; relevance: number; priority: string; type: string; thumbnail: string; url: string; page: number; relatedPages?: number[]; /** 검색에 매칭된 페이지 수 (문서 전체 페이지 수가 아님) */ matchedPageCount?: number; complexity: string; answerability: number; llmInsights?: string[]; // 백엔드 응답 추가 메타데이터 (선택) docId?: string; documentType?: string | null; applyRegion?: string | null; applyProduct?: string | null; deptName?: string | null; regDate?: string | null; docPageLink?: string | null; pages?: ResultPage[]; } export interface SearchMeta { total: number; complexity: "Simple" | "Complex"; strategy: "Text" | "Vision" | "Hybrid"; answerabilityScore: number; } export type ViewState = "search" | "results"; export interface SearchSession { id: string; query: string; timestamp: number; results: SearchResult[]; meta: SearchMeta; }