summaryrefslogtreecommitdiff
path: root/lib/pos/types.ts
blob: eb75c94bfa2b908129a2eb1fe9d3520a4dc7f8c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// 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}`;