fix. 개발 도구 적용. (typescript, prettier, es-lint)
This commit is contained in:
@@ -1,317 +1,331 @@
|
||||
// API 요청 파라미터 타입
|
||||
export interface GameDataRequest {
|
||||
game_alias: string;
|
||||
lang_code: string;
|
||||
q?: string;
|
||||
qc?: string;
|
||||
game_alias: string
|
||||
lang_code: string
|
||||
q?: string
|
||||
qc?: string
|
||||
}
|
||||
|
||||
// API 응답 데이터 타입
|
||||
export interface GameDataResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
value: GameDataValue;
|
||||
code: number
|
||||
message: string
|
||||
value: GameDataValue
|
||||
}
|
||||
|
||||
// API 응답의 value 객체 타입
|
||||
export interface GameDataValue {
|
||||
game_id: string;
|
||||
game_code: number;
|
||||
s3_folder_name: string;
|
||||
game_name: string;
|
||||
ga_code: string;
|
||||
favicon_path: string;
|
||||
design_theme: number;
|
||||
lang_codes: string; // JSON 문자열로 변경
|
||||
key_color_codes: string; // JSON 문자열로 변경
|
||||
use_game_font: boolean;
|
||||
footer_dev_ci_img_yn: boolean;
|
||||
footer_dev_ci_img_path: string;
|
||||
game_font: string; // JSON 문자열로 변경
|
||||
globals: GameDataGlobal[]; // 배열로 변경
|
||||
gnb: GameDataGnb;
|
||||
intro: GameDataIntro;
|
||||
inspection: Record<string, any>; // 동적 객체
|
||||
stove_gnb: string; // JSON 문자열로 변경
|
||||
meta_tag: string; // JSON 문자열로 변경
|
||||
sns: string; // JSON 문자열로 변경
|
||||
footer: string; // JSON 문자열로 변경
|
||||
game_id: string
|
||||
game_code: number
|
||||
s3_folder_name: string
|
||||
game_name: string
|
||||
ga_code: string
|
||||
design_theme: number
|
||||
lang_codes: string // JSON 문자열로 변경
|
||||
key_color_codes: string // JSON 문자열로 변경
|
||||
use_game_font: boolean
|
||||
comm_sns_bg_color_code: string
|
||||
comm_multilang_filename: string
|
||||
footer_dev_ci_img_yn: boolean
|
||||
footer_dev_ci_img_path: string
|
||||
default_lang_code?: string // 기본 언어 코드 추가
|
||||
game_font: string // JSON 문자열로 변경
|
||||
globals: GameDataGlobal[] // 배열로 변경
|
||||
gnb: GameDataGnb
|
||||
intro: GameDataIntro
|
||||
inspection: Record<string, any> // 동적 객체
|
||||
stove_gnb: GameDataStoveGnb // JSON 문자열로 변경
|
||||
favicon_path: string // JSON 문자열로 변경
|
||||
meta_tag: string // JSON 문자열로 변경
|
||||
sns: string // JSON 문자열로 변경
|
||||
footer: string // JSON 문자열로 변경
|
||||
}
|
||||
|
||||
// Global 설정 타입
|
||||
export interface GameDataGlobal {
|
||||
system_font: string; // JSON 문자열로 변경
|
||||
lang: string; // JSON 문자열로 변경
|
||||
system_font: string // JSON 문자열로 변경
|
||||
lang: string // JSON 문자열로 변경
|
||||
}
|
||||
|
||||
// 폰트 타입
|
||||
export interface GameDataFont {
|
||||
"font-family": string;
|
||||
'font-family': string
|
||||
}
|
||||
|
||||
// 언어 설정 타입
|
||||
export interface GameDataLang {
|
||||
dir: string;
|
||||
iso: string;
|
||||
code: string;
|
||||
name: string;
|
||||
dir: string
|
||||
iso: string
|
||||
code: string
|
||||
name: string
|
||||
}
|
||||
|
||||
// GNB 설정 타입
|
||||
export interface GameDataGnb {
|
||||
game_gnb_ver: string;
|
||||
display_start_dt: string; // ISO 문자열로 변경
|
||||
theme_type: string;
|
||||
bi_path: string;
|
||||
lang_codes: string; // JSON 문자열로 변경
|
||||
buttons: GameDataButton[];
|
||||
menus: Record<string, GameDataMenu>; // 동적 객체로 변경
|
||||
game_gnb_ver: string
|
||||
display_start_dt: string // ISO 문자열로 변경
|
||||
theme_type: string
|
||||
bi_path: string
|
||||
lang_codes: string // JSON 문자열로 변경
|
||||
buttons: GameDataButton[]
|
||||
menus: Record<string, GameDataMenu> // 동적 객체로 변경
|
||||
}
|
||||
|
||||
// 버튼 타입
|
||||
export interface GameDataButton {
|
||||
depth_type: number;
|
||||
button: string; // JSON 문자열로 변경
|
||||
depth_type: number
|
||||
button: string // JSON 문자열로 변경
|
||||
}
|
||||
|
||||
// 메뉴 타입
|
||||
export interface GameDataMenu {
|
||||
path_code: string;
|
||||
depth: number;
|
||||
sort_order: number;
|
||||
menu_name: string;
|
||||
click_action_type: number;
|
||||
url_path: string;
|
||||
link_target: string;
|
||||
children: Record<string, GameDataMenu>; // 중첩 메뉴를 위한 children 속성 추가
|
||||
tracking: string; // JSON 문자열로 변경
|
||||
path_code: string
|
||||
depth: number
|
||||
sort_order: number
|
||||
menu_name: string
|
||||
click_action_type: number
|
||||
url_path: string
|
||||
link_target: string
|
||||
children: Record<string, GameDataMenu> // 중첩 메뉴를 위한 children 속성 추가
|
||||
tracking: string | GameDataTracking // JSON 문자열 또는 객체로 변경
|
||||
}
|
||||
|
||||
// 인트로 타입
|
||||
export interface GameDataIntro {
|
||||
seq: number;
|
||||
display_start_dt: string;
|
||||
display_end_dt: string;
|
||||
page_url: string;
|
||||
seq: number
|
||||
display_start_dt: string
|
||||
display_end_dt: string
|
||||
page_url: string
|
||||
}
|
||||
|
||||
// 트래킹 타입
|
||||
export interface GameDataTracking {
|
||||
viewType: string;
|
||||
actionType: string;
|
||||
clickSarea: string;
|
||||
viewType: string
|
||||
actionType: string
|
||||
clickSarea: string
|
||||
}
|
||||
|
||||
// 퀵 메뉴 타입
|
||||
export interface GameDataQuickMenu {
|
||||
banner_seq: number;
|
||||
promotion_name: string;
|
||||
thumbnail: string;
|
||||
page_url_type: number;
|
||||
page_url: string;
|
||||
link_type: number;
|
||||
display_start_dt: string;
|
||||
display_end_dt: string;
|
||||
sort_order: number;
|
||||
banner_title: string;
|
||||
banner_seq: number
|
||||
promotion_name: string
|
||||
thumbnail: string
|
||||
page_url_type: number
|
||||
page_url: string
|
||||
link_type: number
|
||||
display_start_dt: string
|
||||
display_end_dt: string
|
||||
sort_order: number
|
||||
banner_title: string
|
||||
}
|
||||
|
||||
// Stove GNB Skin Type
|
||||
export type StoveGnbSkinType =
|
||||
| 'gnb-default'
|
||||
| 'gnb-default-fixed'
|
||||
| 'gnb-dark-theme'
|
||||
| 'gnb-dark-mix'
|
||||
| 'gnb-dark-mini'
|
||||
| 'gnb-dark-mix-mini'
|
||||
| 'gnb-default-mini'
|
||||
| 'gnb-mobile-timeline'
|
||||
|
||||
// Stove GNB 타입
|
||||
export interface GameDataStoveGnb {
|
||||
skin_type: string;
|
||||
stove_install_button_visible: string;
|
||||
skin_type: StoveGnbSkinType
|
||||
stove_install_button_visible: string
|
||||
}
|
||||
|
||||
// 파비콘 경로 타입
|
||||
export interface GameDataFaviconPath {
|
||||
"16_16": string;
|
||||
"32_32": string;
|
||||
"72_72": string;
|
||||
"180_180": string;
|
||||
"192_192": string;
|
||||
'16_16': string
|
||||
'32_32': string
|
||||
'72_72': string
|
||||
'180_180': string
|
||||
'192_192': string
|
||||
}
|
||||
|
||||
// 공통 이미지 타입
|
||||
export interface GameDataCommImg {
|
||||
groups: GameDataCommImgGroup[];
|
||||
groups: GameDataCommImgGroup[]
|
||||
}
|
||||
|
||||
// 공통 이미지 그룹 타입
|
||||
export interface GameDataCommImgGroup {
|
||||
img_path: GameDataImgPath;
|
||||
required: boolean;
|
||||
img_scope: string;
|
||||
group_code: string;
|
||||
group_label: string;
|
||||
img_path: GameDataImgPath
|
||||
required: boolean
|
||||
img_scope: string
|
||||
group_code: string
|
||||
group_label: string
|
||||
}
|
||||
|
||||
// 이미지 경로 타입
|
||||
export interface GameDataImgPath {
|
||||
comm: string;
|
||||
comm: string
|
||||
}
|
||||
|
||||
// 메타 태그 타입
|
||||
export interface GameDataMetaTag {
|
||||
x_desc: string;
|
||||
og_desc: string;
|
||||
x_image: string;
|
||||
x_title: string;
|
||||
og_image: string;
|
||||
og_title: string;
|
||||
page_desc: string;
|
||||
page_title: string;
|
||||
x_desc: string
|
||||
og_desc: string
|
||||
x_image: string
|
||||
x_title: string
|
||||
og_image: string
|
||||
og_title: string
|
||||
page_desc: string
|
||||
page_title: string
|
||||
}
|
||||
|
||||
// YouTube 설정 타입
|
||||
export interface GameDataYoutube {
|
||||
use_yn: number;
|
||||
api_key: string;
|
||||
use_yn: number
|
||||
api_key: string
|
||||
}
|
||||
|
||||
// SNS 설정 타입
|
||||
export interface GameDataSns {
|
||||
kakao: GameDataSnsItem;
|
||||
tiktok: GameDataSnsItem;
|
||||
discord: GameDataSnsItem;
|
||||
twitter: GameDataSnsItem;
|
||||
youtube: GameDataSnsItem;
|
||||
facebook: GameDataSnsItem;
|
||||
instagram: GameDataSnsItem;
|
||||
kakao: GameDataSnsItem
|
||||
tiktok: GameDataSnsItem
|
||||
discord: GameDataSnsItem
|
||||
twitter: GameDataSnsItem
|
||||
youtube: GameDataSnsItem
|
||||
facebook: GameDataSnsItem
|
||||
instagram: GameDataSnsItem
|
||||
}
|
||||
|
||||
// SNS 아이템 타입
|
||||
export interface GameDataSnsItem {
|
||||
url: string | null;
|
||||
use_yn: number;
|
||||
url: string | null
|
||||
use_yn: number
|
||||
}
|
||||
|
||||
// 마켓 설정 타입
|
||||
export interface GameDataMarket {
|
||||
pc: GameDataMarketItem;
|
||||
app_store: GameDataMarketItem;
|
||||
google_play: GameDataMarketItem;
|
||||
pc: GameDataMarketItem
|
||||
app_store: GameDataMarketItem
|
||||
google_play: GameDataMarketItem
|
||||
}
|
||||
|
||||
// 마켓 아이템 타입
|
||||
export interface GameDataMarketItem {
|
||||
url: string | null;
|
||||
use_yn: number;
|
||||
url: string | null
|
||||
use_yn: number
|
||||
}
|
||||
|
||||
// 푸터 설정 타입
|
||||
export interface GameDataFooter {
|
||||
dev_ci_url: string;
|
||||
use_dev_ci_url: boolean;
|
||||
fund_display_yn: boolean;
|
||||
use_game_rating: boolean;
|
||||
fund_display_url: string;
|
||||
game_rating_info: GameDataGameRatingInfo;
|
||||
dev_ci_url: string
|
||||
use_dev_ci_url: boolean
|
||||
fund_display_yn: boolean
|
||||
use_game_rating: boolean
|
||||
fund_display_url: string
|
||||
game_rating_info: GameDataGameRatingInfo
|
||||
}
|
||||
|
||||
// 게임 등급 정보 타입
|
||||
export interface GameDataGameRatingInfo {
|
||||
title: string;
|
||||
reg_no: string;
|
||||
prod_date: string;
|
||||
rating_type: string;
|
||||
company_name: string;
|
||||
content_info: string;
|
||||
rating_grade: string;
|
||||
rating_class_no: string;
|
||||
title: string
|
||||
reg_no: string
|
||||
prod_date: string
|
||||
rating_type: string
|
||||
company_name: string
|
||||
content_info: string
|
||||
rating_grade: string
|
||||
rating_class_no: string
|
||||
}
|
||||
|
||||
// API 에러 응답 타입
|
||||
export interface GameDataErrorResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
error?: string;
|
||||
code: number
|
||||
message: string
|
||||
error?: string
|
||||
}
|
||||
|
||||
// API 응답 래퍼 타입 (성공/실패 통합)
|
||||
export type GameDataApiResponse = GameDataResponse | GameDataErrorResponse;
|
||||
export type GameDataApiResponse = GameDataResponse | GameDataErrorResponse
|
||||
|
||||
// API 호출 옵션 타입
|
||||
export interface GameDataApiOptions {
|
||||
gameAlias: string;
|
||||
langCode: string;
|
||||
q: string;
|
||||
qc: string;
|
||||
baseUrl?: string;
|
||||
gameAlias: string
|
||||
langCode: string
|
||||
q: string
|
||||
qc: string
|
||||
baseUrl?: string
|
||||
}
|
||||
|
||||
// API 상태 타입
|
||||
export type GameDataApiStatus = "idle" | "loading" | "success" | "error";
|
||||
export type GameDataApiStatus = 'idle' | 'loading' | 'success' | 'error'
|
||||
|
||||
// API 결과 타입 (상태와 데이터를 함께 관리)
|
||||
export interface GameDataApiResult {
|
||||
status: GameDataApiStatus;
|
||||
data: GameDataResponse | null;
|
||||
error: string | null;
|
||||
status: GameDataApiStatus
|
||||
data: GameDataResponse | null
|
||||
error: string | null
|
||||
}
|
||||
|
||||
// JSON 문자열 파싱을 위한 유틸리티 타입들
|
||||
export interface ParsedKeyColorCodes {
|
||||
extra: string;
|
||||
primary: string;
|
||||
secondary: string;
|
||||
"text-primary": string;
|
||||
"text-secondary": string;
|
||||
extra: string
|
||||
primary: string
|
||||
secondary: string
|
||||
'text-primary': string
|
||||
'text-secondary': string
|
||||
}
|
||||
|
||||
export interface ParsedGameFont {
|
||||
"font-family": string;
|
||||
'font-family': string
|
||||
}
|
||||
|
||||
export interface ParsedGlobal {
|
||||
system_font: ParsedGameFont;
|
||||
lang: GameDataLang;
|
||||
system_font: ParsedGameFont
|
||||
lang: GameDataLang
|
||||
}
|
||||
|
||||
export interface ParsedButton {
|
||||
google_play: {
|
||||
label: Record<string, string>;
|
||||
url: string;
|
||||
tracking: GameDataTracking;
|
||||
};
|
||||
label: Record<string, string>
|
||||
url: string
|
||||
tracking: GameDataTracking
|
||||
}
|
||||
app_store: {
|
||||
label: Record<string, string>;
|
||||
url: string;
|
||||
tracking: GameDataTracking;
|
||||
};
|
||||
label: Record<string, string>
|
||||
url: string
|
||||
tracking: GameDataTracking
|
||||
}
|
||||
}
|
||||
|
||||
export interface ParsedStoveGnb {
|
||||
skin_type: string;
|
||||
stove_install_button_visible: string;
|
||||
skin_type: StoveGnbSkinType
|
||||
stove_install_button_visible: string
|
||||
}
|
||||
|
||||
export interface ParsedSns {
|
||||
kakao: GameDataSnsItem;
|
||||
twitter: GameDataSnsItem;
|
||||
discord: GameDataSnsItem;
|
||||
youtube: GameDataSnsItem;
|
||||
instagram: GameDataSnsItem;
|
||||
facebook: GameDataSnsItem;
|
||||
tiktok: GameDataSnsItem;
|
||||
kakao: GameDataSnsItem
|
||||
twitter: GameDataSnsItem
|
||||
discord: GameDataSnsItem
|
||||
youtube: GameDataSnsItem
|
||||
instagram: GameDataSnsItem
|
||||
facebook: GameDataSnsItem
|
||||
tiktok: GameDataSnsItem
|
||||
}
|
||||
|
||||
export interface ParsedFooter {
|
||||
use_game_rating: boolean;
|
||||
game_rating_info: GameDataGameRatingInfo;
|
||||
use_dev_ci_url: boolean;
|
||||
dev_ci_url: string;
|
||||
fund_display_yn: boolean;
|
||||
fund_display_url: string;
|
||||
use_game_rating: boolean
|
||||
game_rating_info: GameDataGameRatingInfo
|
||||
use_dev_ci_url: boolean
|
||||
dev_ci_url: string
|
||||
fund_display_yn: boolean
|
||||
fund_display_url: string
|
||||
}
|
||||
|
||||
// 파비콘 경로 파싱 타입
|
||||
export interface ParsedFaviconPath {
|
||||
"16_16": string;
|
||||
"32_32": string;
|
||||
"72_72": string;
|
||||
"180_180": string;
|
||||
"192_192": string;
|
||||
'16_16': string
|
||||
'32_32': string
|
||||
'72_72': string
|
||||
'180_180': string
|
||||
'192_192': string
|
||||
}
|
||||
|
||||
// 기존 gameData 타입과의 호환성을 위한 별칭
|
||||
export type gameData = GameDataValue;
|
||||
export type gameData = GameDataValue
|
||||
|
||||
@@ -1,147 +1,170 @@
|
||||
// API 요청 파라미터 타입
|
||||
export interface PageDataRequest {
|
||||
game_alias: string;
|
||||
lang_code: string;
|
||||
page_url: string;
|
||||
q?: string;
|
||||
qc?: string;
|
||||
game_alias: string
|
||||
lang_code: string
|
||||
page_url: string
|
||||
q?: string
|
||||
qc?: string
|
||||
}
|
||||
|
||||
// API 요청 헤더 타입
|
||||
export interface PageDataRequestHeaders {
|
||||
"caller-Detail"?: string;
|
||||
"caller-ID"?: string;
|
||||
Authorization?: string;
|
||||
'caller-Detail'?: string
|
||||
'caller-ID'?: string
|
||||
Authorization?: string
|
||||
}
|
||||
|
||||
// API 응답 데이터 타입
|
||||
export interface PageDataResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
value: PageDataValue;
|
||||
code: number
|
||||
message: string
|
||||
value: PageDataValue
|
||||
}
|
||||
|
||||
// API 응답의 value 객체 타입
|
||||
export interface PageDataValue {
|
||||
page_seq: number;
|
||||
page_type: number;
|
||||
page_name: string;
|
||||
page_name_en: string;
|
||||
page_ver: number;
|
||||
display_start_dt: string;
|
||||
lang_codes: string; // JSON string
|
||||
is_login_required: boolean;
|
||||
meta_tag_type: number;
|
||||
fit_page_height: boolean;
|
||||
use_top_btn: boolean;
|
||||
use_sns_btn: boolean;
|
||||
use_lnb: boolean;
|
||||
lnb_menus: PageDataLnbMenu[];
|
||||
templates: PageDataTemplate[];
|
||||
meta_tag: PageDataMetaTag;
|
||||
page_seq: number
|
||||
page_type: number
|
||||
page_name: string
|
||||
page_name_en: string
|
||||
page_ver: number
|
||||
display_start_dt: string
|
||||
lang_codes: string // JSON string
|
||||
is_login_required: boolean
|
||||
meta_tag_type: number
|
||||
fit_page_height: boolean
|
||||
use_top_btn: boolean
|
||||
use_sns_btn: boolean
|
||||
use_lnb: boolean
|
||||
lnb_menus: PageDataLnbMenu[]
|
||||
templates: PageDataTemplate[]
|
||||
meta_tag: PageDataMetaTag // JSON string
|
||||
}
|
||||
|
||||
// 메타 태그 타입
|
||||
export interface PageDataMetaTag {
|
||||
x_desc: string;
|
||||
og_desc: string;
|
||||
x_image: string;
|
||||
x_title: string;
|
||||
og_image: string;
|
||||
og_title: string;
|
||||
page_desc: string;
|
||||
page_title: string;
|
||||
x_desc: string
|
||||
og_desc: string
|
||||
x_image: string
|
||||
x_title: string
|
||||
og_image: string
|
||||
og_title: string
|
||||
page_desc: string
|
||||
page_title: string
|
||||
}
|
||||
|
||||
// LNB 메뉴 타입
|
||||
export interface PageDataLnbMenu {
|
||||
text_color_code_active: string;
|
||||
text_color_code_deactive: string;
|
||||
path_code: string;
|
||||
depth: number;
|
||||
sort_order: number;
|
||||
menu_name: string;
|
||||
target_type: number;
|
||||
page_ver_tmpl_name_en: string;
|
||||
tracking: string; // JSON string
|
||||
text_color_code_active: string
|
||||
text_color_code_deactive: string
|
||||
path_code: string
|
||||
depth: number
|
||||
sort_order: number
|
||||
menu_name: string
|
||||
target_type: number
|
||||
page_ver_tmpl_name_en: string
|
||||
tracking: string // JSON string
|
||||
}
|
||||
|
||||
// 템플릿 타입
|
||||
export interface PageDataTemplate {
|
||||
tmpl_sort_order: number;
|
||||
page_ver_tmpl_name: string;
|
||||
page_ver_tmpl_name_en: string;
|
||||
template_code: string;
|
||||
template_type_code: string;
|
||||
template_category: string;
|
||||
template_name: string;
|
||||
template_sample_img_path: string;
|
||||
template_sample_zip_path: string;
|
||||
template_type_name: string;
|
||||
is_selectable_on_create: boolean;
|
||||
components: Record<string, PageDataComponent>;
|
||||
tmpl_sort_order: number
|
||||
page_ver_tmpl_name: string
|
||||
page_ver_tmpl_name_en: string
|
||||
template_code: string
|
||||
components: Record<string, PageDataComponent>
|
||||
}
|
||||
|
||||
// 컴포넌트 타입
|
||||
export interface PageDataComponent {
|
||||
component_sort_order: number;
|
||||
component_type: string;
|
||||
set_count: number;
|
||||
component_name: string;
|
||||
is_required: boolean;
|
||||
has_operational_resource: boolean;
|
||||
min_count: number;
|
||||
max_count: number;
|
||||
component_id: string;
|
||||
operate_resources: PageDataOperateResource[];
|
||||
[key: string]: any; // Additional Properties
|
||||
component_sort_order: number
|
||||
set_count: number
|
||||
component_name: string
|
||||
has_operational_resource: boolean
|
||||
resources: PageDataResource[]
|
||||
list_resources: PageDataListResource[]
|
||||
flag_resources: PageDataFlagResource[]
|
||||
}
|
||||
|
||||
// 운영 리소스 타입
|
||||
// 리소스 타입
|
||||
export interface PageDataResource {
|
||||
resource_sort_order: number
|
||||
resource_name: string
|
||||
resource_type: string
|
||||
groups: Record<string, any>
|
||||
group_sets: Record<string, any>
|
||||
}
|
||||
|
||||
// 리스트 리소스 타입
|
||||
export interface PageDataListResource {
|
||||
seq: number
|
||||
title: string
|
||||
img_path: string
|
||||
url: string
|
||||
link_target: string
|
||||
display_start_dt: string
|
||||
display_end_dt: string
|
||||
is_display_status: number
|
||||
display_status: number
|
||||
option01: number
|
||||
option02: number
|
||||
option03: string
|
||||
}
|
||||
|
||||
// 플래그 리소스 타입
|
||||
export interface PageDataFlagResource {
|
||||
seq: number
|
||||
flag_type: number
|
||||
option01: number
|
||||
option02: number
|
||||
option03: string
|
||||
}
|
||||
|
||||
// 운영 리소스 타입 (기존 호환성 유지)
|
||||
export interface PageDataOperateResource {
|
||||
seq: number;
|
||||
col: string;
|
||||
col2: string;
|
||||
col3: string;
|
||||
col4: string;
|
||||
col5: string;
|
||||
col6: string;
|
||||
col7: string;
|
||||
resource_control_type: number;
|
||||
resource_type: string;
|
||||
[key: string]: any; // Additional Properties
|
||||
seq: number
|
||||
col: string
|
||||
col2: string
|
||||
col3: string
|
||||
col4: string
|
||||
col5: string
|
||||
col6: string
|
||||
col7: string
|
||||
resource_control_type: number
|
||||
resource_type: string
|
||||
[key: string]: any // Additional Properties
|
||||
}
|
||||
|
||||
// API 에러 응답 타입
|
||||
export interface PageDataErrorResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
error?: string;
|
||||
code: number
|
||||
message: string
|
||||
error?: string
|
||||
}
|
||||
|
||||
// API 응답 래퍼 타입 (성공/실패 통합)
|
||||
export type PageDataApiResponse = PageDataResponse | PageDataErrorResponse;
|
||||
export type PageDataApiResponse = PageDataResponse | PageDataErrorResponse
|
||||
|
||||
// API 호출 옵션 타입
|
||||
export interface PageDataApiOptions {
|
||||
gameAlias: string;
|
||||
langCode: string;
|
||||
pageUrl: string;
|
||||
q?: string;
|
||||
qc?: string;
|
||||
headers?: PageDataRequestHeaders;
|
||||
baseUrl?: string;
|
||||
gameAlias: string
|
||||
langCode: string
|
||||
pageUrl: string
|
||||
q?: string
|
||||
qc?: string
|
||||
headers?: PageDataRequestHeaders
|
||||
baseUrl?: string
|
||||
}
|
||||
|
||||
// API 상태 타입
|
||||
export type PageDataApiStatus = "idle" | "loading" | "success" | "error";
|
||||
export type PageDataApiStatus = 'idle' | 'loading' | 'success' | 'error'
|
||||
|
||||
// API 결과 타입 (상태와 데이터를 함께 관리)
|
||||
export interface PageDataApiResult {
|
||||
status: PageDataApiStatus;
|
||||
data: PageDataResponse | null;
|
||||
error: string | null;
|
||||
status: PageDataApiStatus
|
||||
data: PageDataResponse | null
|
||||
error: string | null
|
||||
}
|
||||
|
||||
// 페이지 데이터 별칭 (기존 호환성)
|
||||
export type pageData = PageDataValue;
|
||||
export type pageData = PageDataValue
|
||||
|
||||
Reference in New Issue
Block a user