86 lines
1.9 KiB
TypeScript
86 lines
1.9 KiB
TypeScript
/**
|
|
* 📄 Attachment Interface
|
|
* 첨부 파일 관련 인터페이스 정의 파일
|
|
*
|
|
* - 첨부 파일 목록 및 상세 정보 타입 정의
|
|
* - 페이지네이션 및 정렬 설정 인터페이스 제공
|
|
* - 첨부 파일 검색 및 필터링 파라미터 타입 지정
|
|
* - 첨부 파일 서비스 메소드 인터페이스 정의
|
|
* - Axios 응답 타입을 활용한 타입 안전성 보장
|
|
* - 첨부 파일 CRUD 작업을 위한 표준화된 타입 구조
|
|
*/
|
|
import type { AxiosResponse } from "axios";
|
|
|
|
interface SortConfig {
|
|
empty: boolean;
|
|
sorted: boolean;
|
|
unsorted: boolean;
|
|
}
|
|
|
|
interface PageableConfig {
|
|
sort: SortConfig;
|
|
offset: number;
|
|
pageNumber: number;
|
|
pageSize: number;
|
|
paged: boolean;
|
|
unpaged: boolean;
|
|
}
|
|
|
|
export interface PageableList<T> {
|
|
content: T[];
|
|
pageable: PageableConfig;
|
|
sort: SortConfig;
|
|
totalPages: number;
|
|
totalElements: number;
|
|
number: number;
|
|
numberOfElements: number;
|
|
size: number;
|
|
first: boolean;
|
|
last: boolean;
|
|
empty: boolean;
|
|
}
|
|
|
|
export interface PageableParams {
|
|
page?: number;
|
|
size?: number;
|
|
sort?: string[];
|
|
}
|
|
|
|
export interface AttachmentParams extends PageableParams {
|
|
keywordType?: string;
|
|
keyword?: string;
|
|
atflCd?: string;
|
|
atflSn?: number;
|
|
atflId?: string;
|
|
orgnlFileNm?: string;
|
|
atflFlieSz?: number;
|
|
atflType?: string;
|
|
dwnldNocs?: number;
|
|
delYn?: string;
|
|
lnkgDmnId?: string;
|
|
lnkgDmnNm?: string;
|
|
}
|
|
|
|
export interface Attachment {
|
|
atflCd: string;
|
|
atflSn: number;
|
|
atflId: string;
|
|
physFileNm: string;
|
|
orgnlFileNm: string;
|
|
atflFlieSz: number;
|
|
atflType: string;
|
|
dwnldNocs: number;
|
|
delYn: string;
|
|
lnkgDmnId: string;
|
|
lnkgDmnNm: string;
|
|
regDt: string;
|
|
}
|
|
|
|
export type AttachmentList = PageableList<Attachment>;
|
|
|
|
export interface AttachmentService {
|
|
getAttachmentsList: (params: AttachmentParams) => Promise<AttachmentList>;
|
|
getAttachmentsInfo: (atflCd: string) => Promise<Attachment[]>;
|
|
deleteAttachmentByAtflCd: (atflCd: string) => Promise<void>;
|
|
}
|