// POS 관련 타입 정의 export interface PosFileInfo { projNo: string; posNo: string; posRevNo: string; fileSer: string; fileName: string; dcmtmId: string; } export interface GetDcmtmIdParams { /** * 자재코드 (MATNR) * 예: 'SN2693A6410100001' */ materialCode: string; } export interface GetDcmtmIdResult { success: boolean; files?: PosFileInfo[]; error?: string; } export interface GetEncryptDocumentumFileParams { objectID: string; /** * 사번. 기본값: 'EVM0236' (context2.txt 기준) */ sabun?: string; /** * 앱 코드. 기본값: 환경변수 POS_APP_CODE 또는 'SO13'(품질) */ appCode?: string; /** * 파일 생성 모드. 기본값: 1 (context2.txt 기준) * 0: PDF Rendition 우선, 실패시 원본 * 1: 원본 파일 * 2: PDF 파일 * 3: TIFF 파일 */ fileCreateMode?: number; /** * 보안 레벨. 기본값: 'SedamsClassID' */ securityLevel?: string; /** * 설계파일 여부. 기본값: true (context2.txt 기준) */ isDesign?: boolean; } export interface DownloadPosFileParams { /** * POS API에서 반환된 상대 경로 * 예: "asd_as_2509131735233768_OP02\asd_as_2509131735233768_OP02.tif" */ relativePath: string; } export interface DownloadPosFileResult { success: boolean; fileName?: string; fileBuffer?: Buffer; mimeType?: string; error?: string; } export interface PosFileSyncResult { success: boolean; processedCount: number; successCount: number; failedCount: number; errors: string[]; details: { materialCode: string; fileName?: string; status: 'success' | 'failed' | 'no_files'; error?: string; }[]; } // POS SOAP 엔드포인트 정보 export const POS_SOAP_SEGMENT = '/Documentum/PlmFileBroker.asmx'; export const POS_SOAP_BASE_URL = process.env.POS_SOAP_ENDPOINT || 'http://60.100.99.122:7700'; export const POS_SOAP_ENDPOINT = `${POS_SOAP_BASE_URL}${POS_SOAP_SEGMENT}`;