@sayren/store-sdk 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +410 -23
- package/dist/index.mjs +266 -13
- package/package.json +1 -1
- package/src/client.ts +116 -0
- package/src/index.ts +2 -0
- package/src/schemas/category.ts +25 -0
- package/src/schemas/collection.ts +25 -0
- package/src/schemas/locale.ts +39 -0
- package/src/schemas/market.ts +24 -0
- package/src/schemas/order.ts +9 -2
- package/src/schemas/product-info.ts +26 -0
- package/src/schemas/product-localization.ts +121 -0
- package/src/schemas/product.ts +13 -1
- package/src/schemas/saved-option-set.ts +62 -0
- package/src/schemas/store.ts +11 -0
package/dist/index.d.mts
CHANGED
|
@@ -5610,6 +5610,27 @@ export declare const categoryDeleteQuerySchema: z.ZodObject<{
|
|
|
5610
5610
|
cascade: "cascade";
|
|
5611
5611
|
}>>;
|
|
5612
5612
|
}, z.core.$strip>;
|
|
5613
|
+
/**
|
|
5614
|
+
* 카테고리 번역 (이슈 #134) — 언어 하나의 이름·SEO. 카테고리 필드(`name`·`meta*`)는 상점 기본 언어 값이고 번역 레코드가 언어별 값이다.
|
|
5615
|
+
* 비운 칸(null)은 스토어프론트가 기본 언어 값으로 대체한다(칸 단위 대체).
|
|
5616
|
+
*/
|
|
5617
|
+
export declare const categoryLocalizationSchema: z.ZodObject<{
|
|
5618
|
+
locale: z.ZodString;
|
|
5619
|
+
name: z.ZodNullable<z.ZodString>;
|
|
5620
|
+
metaTitle: z.ZodNullable<z.ZodString>;
|
|
5621
|
+
metaDescription: z.ZodNullable<z.ZodString>;
|
|
5622
|
+
metaKeywords: z.ZodNullable<z.ZodString>;
|
|
5623
|
+
updatedAt: z.ZodString;
|
|
5624
|
+
}, z.core.$strip>;
|
|
5625
|
+
export type CategoryLocalization = z.infer<typeof categoryLocalizationSchema>;
|
|
5626
|
+
/** `PUT /v1/categories/{categoryId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null(기본 언어 값으로 대체)이다 */
|
|
5627
|
+
export declare const categoryLocalizationRequestSchema: z.ZodObject<{
|
|
5628
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5629
|
+
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5630
|
+
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5631
|
+
metaKeywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
5632
|
+
}, z.core.$strict>;
|
|
5633
|
+
export type CategoryLocalizationRequest = z.infer<typeof categoryLocalizationRequestSchema>;
|
|
5613
5634
|
//#endregion
|
|
5614
5635
|
//#region src/schemas/common.d.ts
|
|
5615
5636
|
export declare const pageInfoSchema: z.ZodObject<{
|
|
@@ -6428,6 +6449,27 @@ export declare const collectionPreviewSchema: z.ZodObject<{
|
|
|
6428
6449
|
salesComputedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
6429
6450
|
}, z.core.$strip>;
|
|
6430
6451
|
export type CollectionPreview = z.infer<typeof collectionPreviewSchema>;
|
|
6452
|
+
/**
|
|
6453
|
+
* 컬렉션 번역 (이슈 #134) — 언어 하나의 제목·설명·SEO. 컬렉션 필드는 상점 기본 언어 값이고 번역 레코드가 언어별 값이다.
|
|
6454
|
+
* 비운 칸(null)은 스토어프론트가 기본 언어 값으로 대체한다(칸 단위 대체).
|
|
6455
|
+
*/
|
|
6456
|
+
export declare const collectionLocalizationSchema: z.ZodObject<{
|
|
6457
|
+
locale: z.ZodString;
|
|
6458
|
+
title: z.ZodNullable<z.ZodString>;
|
|
6459
|
+
description: z.ZodNullable<z.ZodString>;
|
|
6460
|
+
metaTitle: z.ZodNullable<z.ZodString>;
|
|
6461
|
+
metaDescription: z.ZodNullable<z.ZodString>;
|
|
6462
|
+
updatedAt: z.ZodString;
|
|
6463
|
+
}, z.core.$strip>;
|
|
6464
|
+
export type CollectionLocalization = z.infer<typeof collectionLocalizationSchema>;
|
|
6465
|
+
/** `PUT /v1/collections/{collectionId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null(기본 언어 값으로 대체)이다 */
|
|
6466
|
+
export declare const collectionLocalizationRequestSchema: z.ZodObject<{
|
|
6467
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6468
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6469
|
+
metaTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6470
|
+
metaDescription: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
6471
|
+
}, z.core.$strict>;
|
|
6472
|
+
export type CollectionLocalizationRequest = z.infer<typeof collectionLocalizationRequestSchema>;
|
|
6431
6473
|
//#endregion
|
|
6432
6474
|
//#region src/schemas/commerce-flow.d.ts
|
|
6433
6475
|
/**
|
|
@@ -8123,6 +8165,7 @@ export declare const marketSchema: z.ZodObject<{
|
|
|
8123
8165
|
couponsEnabled: z.ZodBoolean;
|
|
8124
8166
|
pointsEnabled: z.ZodBoolean;
|
|
8125
8167
|
archivedAt: z.ZodNullable<z.ZodString>;
|
|
8168
|
+
locales: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
8126
8169
|
}, z.core.$strip>;
|
|
8127
8170
|
export type Market = z.infer<typeof marketSchema>;
|
|
8128
8171
|
export declare const createMarketRequestSchema: z.ZodObject<{
|
|
@@ -8149,6 +8192,7 @@ export declare const createMarketRequestSchema: z.ZodObject<{
|
|
|
8149
8192
|
domains: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
8150
8193
|
couponsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
8151
8194
|
pointsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
8195
|
+
locales: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
8152
8196
|
}, z.core.$strict>;
|
|
8153
8197
|
export type CreateMarketRequest = z.infer<typeof createMarketRequestSchema>;
|
|
8154
8198
|
export type CreateMarketRequestInput = z.input<typeof createMarketRequestSchema>;
|
|
@@ -8158,6 +8202,7 @@ export declare const updateMarketRequestSchema: z.ZodObject<{
|
|
|
8158
8202
|
domains: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
8159
8203
|
couponsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
8160
8204
|
pointsEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
8205
|
+
locales: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
8161
8206
|
}, z.core.$strict>;
|
|
8162
8207
|
export type UpdateMarketRequest = z.infer<typeof updateMarketRequestSchema>;
|
|
8163
8208
|
export type UpdateMarketRequestInput = z.input<typeof updateMarketRequestSchema>;
|
|
@@ -9050,6 +9095,7 @@ export declare const orderSchema: z.ZodObject<{
|
|
|
9050
9095
|
}, z.core.$strip>;
|
|
9051
9096
|
currency: z.ZodOptional<z.ZodString>;
|
|
9052
9097
|
testPayment: z.ZodBoolean;
|
|
9098
|
+
locale: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9053
9099
|
items: z.ZodArray<z.ZodObject<{
|
|
9054
9100
|
orderItemId: z.ZodString;
|
|
9055
9101
|
orderItemNo: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
@@ -9320,7 +9366,7 @@ export declare const orderItemPageSchema: z.ZodObject<{
|
|
|
9320
9366
|
export type OrderItemPage = z.infer<typeof orderItemPageSchema>;
|
|
9321
9367
|
/**
|
|
9322
9368
|
* `GET /v1/orders` 쿼리 — OpenAPI 문서용 형태(값은 쿼리 문자열). 검증 규칙은 서버가 적용한다:
|
|
9323
|
-
* `orderNo` 없이 `orderedFrom` 누락 400 `MISSING_PARAMETER`, 날짜·`orderNo` 형식 오류 400 `INVALID_PARAMETER`,
|
|
9369
|
+
* `orderNo` 없이 `orderedFrom` 누락 400 `MISSING_PARAMETER`, 날짜·`orderNo` 형식 오류 400 `INVALID_PARAMETER`, 366일 초과 400 `RANGE_TOO_WIDE`,
|
|
9324
9370
|
* `testPayment`가 `true`·`false`가 아니면 400 `INVALID_PARAMETER`
|
|
9325
9371
|
*/
|
|
9326
9372
|
export declare const orderListQuerySchema: z.ZodObject<{
|
|
@@ -11367,6 +11413,10 @@ export declare const productSummarySchema: z.ZodObject<{
|
|
|
11367
11413
|
}, z.core.$strip>;
|
|
11368
11414
|
updatedAt: z.ZodString;
|
|
11369
11415
|
sample: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11416
|
+
localizations: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
11417
|
+
locale: z.ZodString;
|
|
11418
|
+
needsTranslation: z.ZodBoolean;
|
|
11419
|
+
}, z.core.$strip>>>>;
|
|
11370
11420
|
}, z.core.$strip>;
|
|
11371
11421
|
export type ProductSummary = z.infer<typeof productSummarySchema>;
|
|
11372
11422
|
/** 옵션 축(그룹)이 가지는 값 하나 — 예: 축 "색상"의 값 "블랙" */
|
|
@@ -11612,20 +11662,20 @@ export declare const discountSchema: z.ZodObject<{
|
|
|
11612
11662
|
}, z.core.$strip>;
|
|
11613
11663
|
export type Discount = z.infer<typeof discountSchema>;
|
|
11614
11664
|
export declare const productSchema: z.ZodObject<{
|
|
11615
|
-
|
|
11616
|
-
productNo: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
11617
|
-
name: z.ZodString;
|
|
11665
|
+
salePrice: z.ZodNumber;
|
|
11618
11666
|
status: z.ZodEnum<{
|
|
11619
11667
|
SALE: "SALE";
|
|
11620
11668
|
SUSPENDED: "SUSPENDED";
|
|
11621
11669
|
OUT_OF_STOCK: "OUT_OF_STOCK";
|
|
11622
11670
|
CLOSED: "CLOSED";
|
|
11623
11671
|
}>;
|
|
11624
|
-
|
|
11625
|
-
discountedPrice: z.ZodNullable<z.ZodNumber>;
|
|
11672
|
+
name: z.ZodString;
|
|
11626
11673
|
stockQuantity: z.ZodNumber;
|
|
11627
11674
|
categoryId: z.ZodNullable<z.ZodString>;
|
|
11675
|
+
productId: z.ZodString;
|
|
11628
11676
|
thumbnailUrl: z.ZodOptional<z.ZodURL>;
|
|
11677
|
+
productNo: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
|
|
11678
|
+
discountedPrice: z.ZodNullable<z.ZodNumber>;
|
|
11629
11679
|
hasOptions: z.ZodBoolean;
|
|
11630
11680
|
updatedAt: z.ZodString;
|
|
11631
11681
|
sample: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -12672,9 +12722,9 @@ export type ProductPatchRequest = z.infer<typeof productPatchRequestSchema>;
|
|
|
12672
12722
|
export declare const productSortSchema: z.ZodEnum<{
|
|
12673
12723
|
"createdAt.desc": "createdAt.desc";
|
|
12674
12724
|
"createdAt.asc": "createdAt.asc";
|
|
12675
|
-
"updatedAt.desc": "updatedAt.desc";
|
|
12676
12725
|
"salePrice.asc": "salePrice.asc";
|
|
12677
12726
|
"salePrice.desc": "salePrice.desc";
|
|
12727
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
12678
12728
|
}>;
|
|
12679
12729
|
export type ProductSort = z.infer<typeof productSortSchema>;
|
|
12680
12730
|
export interface ProductListParams extends PageParams {
|
|
@@ -12703,9 +12753,9 @@ export declare const productListQuerySchema: z.ZodObject<{
|
|
|
12703
12753
|
sort: z.ZodOptional<z.ZodEnum<{
|
|
12704
12754
|
"createdAt.desc": "createdAt.desc";
|
|
12705
12755
|
"createdAt.asc": "createdAt.asc";
|
|
12706
|
-
"updatedAt.desc": "updatedAt.desc";
|
|
12707
12756
|
"salePrice.asc": "salePrice.asc";
|
|
12708
12757
|
"salePrice.desc": "salePrice.desc";
|
|
12758
|
+
"updatedAt.desc": "updatedAt.desc";
|
|
12709
12759
|
}>>;
|
|
12710
12760
|
}, z.core.$strip>;
|
|
12711
12761
|
export declare const discountRequestSchema: z.ZodObject<{
|
|
@@ -12859,6 +12909,113 @@ export declare const infoSectionRequestSchema: z.ZodObject<{
|
|
|
12859
12909
|
}, z.core.$strip>;
|
|
12860
12910
|
export type InfoSectionRequest = z.infer<typeof infoSectionRequestSchema>;
|
|
12861
12911
|
export type InfoSectionRequestInput = z.input<typeof infoSectionRequestSchema>;
|
|
12912
|
+
/**
|
|
12913
|
+
* 안내 섹션 번역 (이슈 #134) — 언어 하나의 제목·본문. 섹션 필드는 상점 기본 언어 값이다. 비운 칸(null)은 스토어프론트가 기본 언어 값으로 대체한다.
|
|
12914
|
+
* 섹션을 연결한 모든 상품이 같은 번역을 보인다.
|
|
12915
|
+
*/
|
|
12916
|
+
export declare const infoSectionLocalizationSchema: z.ZodObject<{
|
|
12917
|
+
locale: z.ZodString;
|
|
12918
|
+
title: z.ZodNullable<z.ZodString>;
|
|
12919
|
+
body: z.ZodNullable<z.ZodString>;
|
|
12920
|
+
bodyJson: z.ZodNullable<z.ZodString>;
|
|
12921
|
+
updatedAt: z.ZodString;
|
|
12922
|
+
}, z.core.$strip>;
|
|
12923
|
+
export type InfoSectionLocalization = z.infer<typeof infoSectionLocalizationSchema>;
|
|
12924
|
+
/** `PUT /v1/info-sections/{infoSectionId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null이다 */
|
|
12925
|
+
export declare const infoSectionLocalizationRequestSchema: z.ZodObject<{
|
|
12926
|
+
title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12927
|
+
body: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12928
|
+
bodyJson: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12929
|
+
}, z.core.$strict>;
|
|
12930
|
+
export type InfoSectionLocalizationRequest = z.infer<typeof infoSectionLocalizationRequestSchema>;
|
|
12931
|
+
//#endregion
|
|
12932
|
+
//#region src/schemas/product-localization.d.ts
|
|
12933
|
+
/**
|
|
12934
|
+
* 조회 응답 — 지금 상품의 옵션명·값·직접 입력 항목, 셀러가 적은 고시 칸을 모두 싣고 번역하지 않은 칸은 null이다.
|
|
12935
|
+
* `optionGroups`는 조합 옵션, `addonGroups`는 추가 선택이다(상품 응답과 같은 구분)
|
|
12936
|
+
*/
|
|
12937
|
+
export declare const productLocalizationSchema: z.ZodObject<{
|
|
12938
|
+
locale: z.ZodString;
|
|
12939
|
+
name: z.ZodNullable<z.ZodString>;
|
|
12940
|
+
description: z.ZodNullable<z.ZodString>;
|
|
12941
|
+
descriptionJson: z.ZodNullable<z.ZodString>;
|
|
12942
|
+
images: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
12943
|
+
optionGroups: z.ZodArray<z.ZodObject<{
|
|
12944
|
+
groupId: z.ZodString;
|
|
12945
|
+
name: z.ZodNullable<z.ZodString>;
|
|
12946
|
+
values: z.ZodArray<z.ZodObject<{
|
|
12947
|
+
valueId: z.ZodString;
|
|
12948
|
+
name: z.ZodNullable<z.ZodString>;
|
|
12949
|
+
}, z.core.$strip>>;
|
|
12950
|
+
}, z.core.$strip>>;
|
|
12951
|
+
addonGroups: z.ZodArray<z.ZodObject<{
|
|
12952
|
+
groupId: z.ZodString;
|
|
12953
|
+
name: z.ZodNullable<z.ZodString>;
|
|
12954
|
+
values: z.ZodArray<z.ZodObject<{
|
|
12955
|
+
valueId: z.ZodString;
|
|
12956
|
+
name: z.ZodNullable<z.ZodString>;
|
|
12957
|
+
}, z.core.$strip>>;
|
|
12958
|
+
}, z.core.$strip>>;
|
|
12959
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
12960
|
+
inputId: z.ZodString;
|
|
12961
|
+
label: z.ZodNullable<z.ZodString>;
|
|
12962
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
12963
|
+
}, z.core.$strip>>;
|
|
12964
|
+
notice: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12965
|
+
key: z.ZodString;
|
|
12966
|
+
label: z.ZodString;
|
|
12967
|
+
value: z.ZodNullable<z.ZodString>;
|
|
12968
|
+
}, z.core.$strip>>>>;
|
|
12969
|
+
updatedAt: z.ZodString;
|
|
12970
|
+
}, z.core.$strip>;
|
|
12971
|
+
export type ProductLocalization = z.infer<typeof productLocalizationSchema>;
|
|
12972
|
+
/**
|
|
12973
|
+
* `PUT /v1/products/{productId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 빠진 칸은 null(기본 언어 값으로 대체)이다.
|
|
12974
|
+
* 옵션은 번역할 id만 보낸다. 상품에 없는 id는 400 `PRODUCT_LOCALIZATION_TARGET_NOT_FOUND`다.
|
|
12975
|
+
* 번역한 옵션명·값 이름도 기본 언어와 같은 규칙(대소문자·앞뒤 공백 무시 유일)이고 겹치면 400 `INVALID_OPTION_MODEL`이다
|
|
12976
|
+
*/
|
|
12977
|
+
export declare const productLocalizationRequestSchema: z.ZodObject<{
|
|
12978
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12979
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12980
|
+
descriptionJson: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12981
|
+
images: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodURL>>>;
|
|
12982
|
+
optionGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12983
|
+
groupId: z.ZodString;
|
|
12984
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12985
|
+
values: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12986
|
+
valueId: z.ZodString;
|
|
12987
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12988
|
+
}, z.core.$strict>>>;
|
|
12989
|
+
}, z.core.$strict>>>;
|
|
12990
|
+
addonGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12991
|
+
groupId: z.ZodString;
|
|
12992
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12993
|
+
values: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12994
|
+
valueId: z.ZodString;
|
|
12995
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12996
|
+
}, z.core.$strict>>>;
|
|
12997
|
+
}, z.core.$strict>>>;
|
|
12998
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
12999
|
+
inputId: z.ZodString;
|
|
13000
|
+
label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13001
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13002
|
+
}, z.core.$strict>>>;
|
|
13003
|
+
notice: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13004
|
+
key: z.ZodString;
|
|
13005
|
+
value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13006
|
+
}, z.core.$strict>>>;
|
|
13007
|
+
}, z.core.$strict>;
|
|
13008
|
+
export type ProductLocalizationRequest = z.infer<typeof productLocalizationRequestSchema>;
|
|
13009
|
+
/**
|
|
13010
|
+
* 번역할 칸이 비었는가(이슈 #134, 2026-10-18 결정: 완성도 대신 「번역 필요」 표시만) — 상품명, 기본 언어에 본문이 있는 상세설명,
|
|
13011
|
+
* 옵션명·값·직접 입력 항목명, 셀러가 적은 고시 칸. 이미지·입력 안내는 기본 언어 값을 그대로 써도 되는 칸이라 세지 않는다.
|
|
13012
|
+
* 상점 플랫폼(상품 수정·목록)과 관리 목록 응답이 같은 함수다
|
|
13013
|
+
*/
|
|
13014
|
+
export declare function productLocalizationNeedsTranslation(localization: Pick<ProductLocalization, "name" | "description" | "optionGroups" | "addonGroups" | "customInputs"> & {
|
|
13015
|
+
notice?: ProductLocalization["notice"];
|
|
13016
|
+
}, base: {
|
|
13017
|
+
description?: string | null;
|
|
13018
|
+
}): boolean;
|
|
12862
13019
|
//#endregion
|
|
12863
13020
|
//#region src/schemas/saved-option-set.d.ts
|
|
12864
13021
|
/**
|
|
@@ -13092,6 +13249,49 @@ export declare const savedOptionSetListQuerySchema: z.ZodObject<{
|
|
|
13092
13249
|
"importedProductCount.desc": "importedProductCount.desc";
|
|
13093
13250
|
}>>;
|
|
13094
13251
|
}, z.core.$strip>;
|
|
13252
|
+
/**
|
|
13253
|
+
* 저장 옵션 번역 (이슈 #134) — 저장 옵션에는 id가 없어 **기본 언어 이름이 키**다(`baseName`·`baseLabel`).
|
|
13254
|
+
* 상품이 불러올 때 상품 번역으로 함께 복사하고(상품 저장 트랜잭션), 그 뒤로는 상품 번역이 원천이다 — 저장 옵션 번역을 고쳐도
|
|
13255
|
+
* 이미 불러온 상품은 그대로다. 기본 언어 이름을 바꾸면 그 이름의 번역은 읽지 않는다.
|
|
13256
|
+
*/
|
|
13257
|
+
export declare const savedOptionSetLocalizationSchema: z.ZodObject<{
|
|
13258
|
+
locale: z.ZodString;
|
|
13259
|
+
groups: z.ZodArray<z.ZodObject<{
|
|
13260
|
+
baseName: z.ZodString;
|
|
13261
|
+
name: z.ZodNullable<z.ZodString>;
|
|
13262
|
+
values: z.ZodArray<z.ZodObject<{
|
|
13263
|
+
baseName: z.ZodString;
|
|
13264
|
+
name: z.ZodNullable<z.ZodString>;
|
|
13265
|
+
}, z.core.$strip>>;
|
|
13266
|
+
}, z.core.$strip>>;
|
|
13267
|
+
customInputs: z.ZodArray<z.ZodObject<{
|
|
13268
|
+
baseLabel: z.ZodString;
|
|
13269
|
+
label: z.ZodNullable<z.ZodString>;
|
|
13270
|
+
placeholder: z.ZodNullable<z.ZodString>;
|
|
13271
|
+
}, z.core.$strip>>;
|
|
13272
|
+
updatedAt: z.ZodString;
|
|
13273
|
+
}, z.core.$strip>;
|
|
13274
|
+
export type SavedOptionSetLocalization = z.infer<typeof savedOptionSetLocalizationSchema>;
|
|
13275
|
+
/**
|
|
13276
|
+
* `PUT /v1/saved-option-sets/{optionSetId}/localizations/{locale}` 본문 — 레코드 전체를 바꾼다. 번역할 이름만 보낸다.
|
|
13277
|
+
* 저장 옵션에 없는 기본 언어 이름은 400 `OPTION_SET_LOCALIZATION_TARGET_NOT_FOUND`, 번역 이름 중복은 상품과 같은 규칙으로 400 `INVALID_OPTION_MODEL`이다
|
|
13278
|
+
*/
|
|
13279
|
+
export declare const savedOptionSetLocalizationRequestSchema: z.ZodObject<{
|
|
13280
|
+
groups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13281
|
+
baseName: z.ZodString;
|
|
13282
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13283
|
+
values: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13284
|
+
baseName: z.ZodString;
|
|
13285
|
+
name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13286
|
+
}, z.core.$strict>>>;
|
|
13287
|
+
}, z.core.$strict>>>;
|
|
13288
|
+
customInputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
13289
|
+
baseLabel: z.ZodString;
|
|
13290
|
+
label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13291
|
+
placeholder: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13292
|
+
}, z.core.$strict>>>;
|
|
13293
|
+
}, z.core.$strict>;
|
|
13294
|
+
export type SavedOptionSetLocalizationRequest = z.infer<typeof savedOptionSetLocalizationRequestSchema>;
|
|
13095
13295
|
//#endregion
|
|
13096
13296
|
//#region src/schemas/stay.d.ts
|
|
13097
13297
|
/**
|
|
@@ -13292,6 +13492,7 @@ export declare const updateStoreRequestSchema: z.ZodObject<{
|
|
|
13292
13492
|
privacyVersion: z.ZodOptional<z.ZodString>;
|
|
13293
13493
|
termsUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
13294
13494
|
privacyUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
13495
|
+
defaultLocale: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
13295
13496
|
businessName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13296
13497
|
representativeName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13297
13498
|
businessNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -13376,6 +13577,7 @@ export declare const storeSchema: z.ZodObject<{
|
|
|
13376
13577
|
termsUrl: z.ZodNullable<z.ZodString>;
|
|
13377
13578
|
privacyUrl: z.ZodNullable<z.ZodString>;
|
|
13378
13579
|
memberCount: z.ZodNumber;
|
|
13580
|
+
defaultLocale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
13379
13581
|
createdAt: z.ZodString;
|
|
13380
13582
|
businessName: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
13381
13583
|
representativeName: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
@@ -15251,18 +15453,22 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
15251
15453
|
};
|
|
15252
15454
|
updatedAt: string;
|
|
15253
15455
|
sample: boolean;
|
|
15456
|
+
localizations: {
|
|
15457
|
+
locale: string;
|
|
15458
|
+
needsTranslation: boolean;
|
|
15459
|
+
}[];
|
|
15254
15460
|
thumbnailUrl?: string | undefined;
|
|
15255
15461
|
}[];
|
|
15256
15462
|
}>;
|
|
15257
15463
|
get: (productId: string) => Promise<{
|
|
15258
|
-
productId: string;
|
|
15259
|
-
productNo: number | null;
|
|
15260
|
-
name: string;
|
|
15261
|
-
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15262
15464
|
salePrice: number;
|
|
15263
|
-
|
|
15465
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15466
|
+
name: string;
|
|
15264
15467
|
stockQuantity: number;
|
|
15265
15468
|
categoryId: string | null;
|
|
15469
|
+
productId: string;
|
|
15470
|
+
productNo: number | null;
|
|
15471
|
+
discountedPrice: number | null;
|
|
15266
15472
|
hasOptions: boolean;
|
|
15267
15473
|
updatedAt: string;
|
|
15268
15474
|
sample: boolean;
|
|
@@ -15404,14 +15610,14 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
15404
15610
|
createdAt?: string | undefined;
|
|
15405
15611
|
}>;
|
|
15406
15612
|
create: (body: ProductCreateRequestInput, idempotencyKey?: string) => Promise<{
|
|
15407
|
-
productId: string;
|
|
15408
|
-
productNo: number | null;
|
|
15409
|
-
name: string;
|
|
15410
|
-
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15411
15613
|
salePrice: number;
|
|
15412
|
-
|
|
15614
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15615
|
+
name: string;
|
|
15413
15616
|
stockQuantity: number;
|
|
15414
15617
|
categoryId: string | null;
|
|
15618
|
+
productId: string;
|
|
15619
|
+
productNo: number | null;
|
|
15620
|
+
discountedPrice: number | null;
|
|
15415
15621
|
hasOptions: boolean;
|
|
15416
15622
|
updatedAt: string;
|
|
15417
15623
|
sample: boolean;
|
|
@@ -15553,14 +15759,14 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
15553
15759
|
createdAt?: string | undefined;
|
|
15554
15760
|
}>;
|
|
15555
15761
|
update: (productId: string, body: ProductReplaceRequestInput) => Promise<{
|
|
15556
|
-
productId: string;
|
|
15557
|
-
productNo: number | null;
|
|
15558
|
-
name: string;
|
|
15559
|
-
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15560
15762
|
salePrice: number;
|
|
15561
|
-
|
|
15763
|
+
status: "SALE" | "SUSPENDED" | "OUT_OF_STOCK" | "CLOSED";
|
|
15764
|
+
name: string;
|
|
15562
15765
|
stockQuantity: number;
|
|
15563
15766
|
categoryId: string | null;
|
|
15767
|
+
productId: string;
|
|
15768
|
+
productNo: number | null;
|
|
15769
|
+
discountedPrice: number | null;
|
|
15564
15770
|
hasOptions: boolean;
|
|
15565
15771
|
updatedAt: string;
|
|
15566
15772
|
sample: boolean;
|
|
@@ -15703,6 +15909,78 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
15703
15909
|
}>;
|
|
15704
15910
|
patch: (productId: string, body: ProductPatchRequest) => Promise<void>;
|
|
15705
15911
|
remove: (productId: string) => Promise<void>;
|
|
15912
|
+
/** 번역(이슈 #134) — 언어별 상품명·상세설명·이미지·옵션 이름 */
|
|
15913
|
+
localizations: {
|
|
15914
|
+
list: (productId: string) => Promise<{
|
|
15915
|
+
locale: string;
|
|
15916
|
+
name: string | null;
|
|
15917
|
+
description: string | null;
|
|
15918
|
+
descriptionJson: string | null;
|
|
15919
|
+
images: string[] | null;
|
|
15920
|
+
optionGroups: {
|
|
15921
|
+
groupId: string;
|
|
15922
|
+
name: string | null;
|
|
15923
|
+
values: {
|
|
15924
|
+
valueId: string;
|
|
15925
|
+
name: string | null;
|
|
15926
|
+
}[];
|
|
15927
|
+
}[];
|
|
15928
|
+
addonGroups: {
|
|
15929
|
+
groupId: string;
|
|
15930
|
+
name: string | null;
|
|
15931
|
+
values: {
|
|
15932
|
+
valueId: string;
|
|
15933
|
+
name: string | null;
|
|
15934
|
+
}[];
|
|
15935
|
+
}[];
|
|
15936
|
+
customInputs: {
|
|
15937
|
+
inputId: string;
|
|
15938
|
+
label: string | null;
|
|
15939
|
+
placeholder: string | null;
|
|
15940
|
+
}[];
|
|
15941
|
+
notice: {
|
|
15942
|
+
key: string;
|
|
15943
|
+
label: string;
|
|
15944
|
+
value: string | null;
|
|
15945
|
+
}[];
|
|
15946
|
+
updatedAt: string;
|
|
15947
|
+
}[]>;
|
|
15948
|
+
put: (productId: string, locale: string, body: ProductLocalizationRequest) => Promise<{
|
|
15949
|
+
locale: string;
|
|
15950
|
+
name: string | null;
|
|
15951
|
+
description: string | null;
|
|
15952
|
+
descriptionJson: string | null;
|
|
15953
|
+
images: string[] | null;
|
|
15954
|
+
optionGroups: {
|
|
15955
|
+
groupId: string;
|
|
15956
|
+
name: string | null;
|
|
15957
|
+
values: {
|
|
15958
|
+
valueId: string;
|
|
15959
|
+
name: string | null;
|
|
15960
|
+
}[];
|
|
15961
|
+
}[];
|
|
15962
|
+
addonGroups: {
|
|
15963
|
+
groupId: string;
|
|
15964
|
+
name: string | null;
|
|
15965
|
+
values: {
|
|
15966
|
+
valueId: string;
|
|
15967
|
+
name: string | null;
|
|
15968
|
+
}[];
|
|
15969
|
+
}[];
|
|
15970
|
+
customInputs: {
|
|
15971
|
+
inputId: string;
|
|
15972
|
+
label: string | null;
|
|
15973
|
+
placeholder: string | null;
|
|
15974
|
+
}[];
|
|
15975
|
+
notice: {
|
|
15976
|
+
key: string;
|
|
15977
|
+
label: string;
|
|
15978
|
+
value: string | null;
|
|
15979
|
+
}[];
|
|
15980
|
+
updatedAt: string;
|
|
15981
|
+
}>;
|
|
15982
|
+
remove: (productId: string, locale: string) => Promise<void>;
|
|
15983
|
+
};
|
|
15706
15984
|
bulkUpdateStatus: (productIds: string[], status: ProductStatus, idempotencyKey?: string) => Promise<{
|
|
15707
15985
|
succeeded: string[];
|
|
15708
15986
|
failed: {
|
|
@@ -16024,6 +16302,44 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
16024
16302
|
};
|
|
16025
16303
|
additionalPriceDropped: boolean;
|
|
16026
16304
|
}>;
|
|
16305
|
+
/** 번역(이슈 #134) — 기본 언어 이름이 키다. 불러올 때 상품 번역으로 복사한다 */
|
|
16306
|
+
localizations: {
|
|
16307
|
+
list: (optionSetId: string) => Promise<{
|
|
16308
|
+
locale: string;
|
|
16309
|
+
groups: {
|
|
16310
|
+
baseName: string;
|
|
16311
|
+
name: string | null;
|
|
16312
|
+
values: {
|
|
16313
|
+
baseName: string;
|
|
16314
|
+
name: string | null;
|
|
16315
|
+
}[];
|
|
16316
|
+
}[];
|
|
16317
|
+
customInputs: {
|
|
16318
|
+
baseLabel: string;
|
|
16319
|
+
label: string | null;
|
|
16320
|
+
placeholder: string | null;
|
|
16321
|
+
}[];
|
|
16322
|
+
updatedAt: string;
|
|
16323
|
+
}[]>;
|
|
16324
|
+
put: (optionSetId: string, locale: string, body: SavedOptionSetLocalizationRequest) => Promise<{
|
|
16325
|
+
locale: string;
|
|
16326
|
+
groups: {
|
|
16327
|
+
baseName: string;
|
|
16328
|
+
name: string | null;
|
|
16329
|
+
values: {
|
|
16330
|
+
baseName: string;
|
|
16331
|
+
name: string | null;
|
|
16332
|
+
}[];
|
|
16333
|
+
}[];
|
|
16334
|
+
customInputs: {
|
|
16335
|
+
baseLabel: string;
|
|
16336
|
+
label: string | null;
|
|
16337
|
+
placeholder: string | null;
|
|
16338
|
+
}[];
|
|
16339
|
+
updatedAt: string;
|
|
16340
|
+
}>;
|
|
16341
|
+
remove: (optionSetId: string, locale: string) => Promise<void>;
|
|
16342
|
+
};
|
|
16027
16343
|
};
|
|
16028
16344
|
/**
|
|
16029
16345
|
* 상품정보제공 고시 품목군(이슈 #135) — 플랫폼 코드 표. 현재 버전만 싣는다. 권한은 상품 조회(`product:r`)다
|
|
@@ -16102,6 +16418,24 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
16102
16418
|
updatedAt: string;
|
|
16103
16419
|
}>;
|
|
16104
16420
|
remove: (infoSectionId: string) => Promise<void>;
|
|
16421
|
+
/** 번역(이슈 #134) — 언어별 제목·본문 */
|
|
16422
|
+
localizations: {
|
|
16423
|
+
list: (infoSectionId: string) => Promise<{
|
|
16424
|
+
locale: string;
|
|
16425
|
+
title: string | null;
|
|
16426
|
+
body: string | null;
|
|
16427
|
+
bodyJson: string | null;
|
|
16428
|
+
updatedAt: string;
|
|
16429
|
+
}[]>;
|
|
16430
|
+
put: (infoSectionId: string, locale: string, body: InfoSectionLocalizationRequest) => Promise<{
|
|
16431
|
+
locale: string;
|
|
16432
|
+
title: string | null;
|
|
16433
|
+
body: string | null;
|
|
16434
|
+
bodyJson: string | null;
|
|
16435
|
+
updatedAt: string;
|
|
16436
|
+
}>;
|
|
16437
|
+
remove: (infoSectionId: string, locale: string) => Promise<void>;
|
|
16438
|
+
};
|
|
16105
16439
|
};
|
|
16106
16440
|
/**
|
|
16107
16441
|
* 컬렉션 (이슈 #83) — 상품을 어디에 보여 줄지 정하는 묶음(다대다). 권한은 카테고리와 같다(`category:r`·`category:rw`).
|
|
@@ -16411,6 +16745,26 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
16411
16745
|
}[];
|
|
16412
16746
|
salesComputedAt: string | null;
|
|
16413
16747
|
}>;
|
|
16748
|
+
/** 번역(이슈 #134) — 언어별 제목·설명·SEO */
|
|
16749
|
+
localizations: {
|
|
16750
|
+
list: (collectionId: string) => Promise<{
|
|
16751
|
+
locale: string;
|
|
16752
|
+
title: string | null;
|
|
16753
|
+
description: string | null;
|
|
16754
|
+
metaTitle: string | null;
|
|
16755
|
+
metaDescription: string | null;
|
|
16756
|
+
updatedAt: string;
|
|
16757
|
+
}[]>;
|
|
16758
|
+
put: (collectionId: string, locale: string, body: CollectionLocalizationRequest) => Promise<{
|
|
16759
|
+
locale: string;
|
|
16760
|
+
title: string | null;
|
|
16761
|
+
description: string | null;
|
|
16762
|
+
metaTitle: string | null;
|
|
16763
|
+
metaDescription: string | null;
|
|
16764
|
+
updatedAt: string;
|
|
16765
|
+
}>;
|
|
16766
|
+
remove: (collectionId: string, locale: string) => Promise<void>;
|
|
16767
|
+
};
|
|
16414
16768
|
};
|
|
16415
16769
|
categories: {
|
|
16416
16770
|
list: (params?: {
|
|
@@ -16571,6 +16925,26 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
16571
16925
|
remove: (categoryId: string, opts?: {
|
|
16572
16926
|
strategy?: CategoryDeleteStrategy;
|
|
16573
16927
|
}) => Promise<void>;
|
|
16928
|
+
/** 번역(이슈 #134) — 언어별 이름·SEO */
|
|
16929
|
+
localizations: {
|
|
16930
|
+
list: (categoryId: string) => Promise<{
|
|
16931
|
+
locale: string;
|
|
16932
|
+
name: string | null;
|
|
16933
|
+
metaTitle: string | null;
|
|
16934
|
+
metaDescription: string | null;
|
|
16935
|
+
metaKeywords: string | null;
|
|
16936
|
+
updatedAt: string;
|
|
16937
|
+
}[]>;
|
|
16938
|
+
put: (categoryId: string, locale: string, body: CategoryLocalizationRequest) => Promise<{
|
|
16939
|
+
locale: string;
|
|
16940
|
+
name: string | null;
|
|
16941
|
+
metaTitle: string | null;
|
|
16942
|
+
metaDescription: string | null;
|
|
16943
|
+
metaKeywords: string | null;
|
|
16944
|
+
updatedAt: string;
|
|
16945
|
+
}>;
|
|
16946
|
+
remove: (categoryId: string, locale: string) => Promise<void>;
|
|
16947
|
+
};
|
|
16574
16948
|
};
|
|
16575
16949
|
orders: {
|
|
16576
16950
|
/**
|
|
@@ -16740,6 +17114,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
16740
17114
|
}[];
|
|
16741
17115
|
progressStatus?: "PAID" | "CANCELED" | "PAYMENT_WAITING" | "CONFIRMED" | "DISPATCHED" | "DELIVERING" | "DELIVERED" | "PURCHASE_DECIDED" | undefined;
|
|
16742
17116
|
currency?: string | undefined;
|
|
17117
|
+
locale?: string | null | undefined;
|
|
16743
17118
|
}>;
|
|
16744
17119
|
/**
|
|
16745
17120
|
* `POST /v1/orders/{orderId}/cash-receipt/reissue` — 실패했거나 재시도 대기 중인 현금영수증을 지금 다시 발급·취소한다.
|
|
@@ -21987,6 +22362,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
21987
22362
|
couponsEnabled: boolean;
|
|
21988
22363
|
pointsEnabled: boolean;
|
|
21989
22364
|
archivedAt: string | null;
|
|
22365
|
+
locales: string[];
|
|
21990
22366
|
}[]>;
|
|
21991
22367
|
get: (marketId: string) => Promise<{
|
|
21992
22368
|
marketId: string;
|
|
@@ -21998,6 +22374,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
21998
22374
|
couponsEnabled: boolean;
|
|
21999
22375
|
pointsEnabled: boolean;
|
|
22000
22376
|
archivedAt: string | null;
|
|
22377
|
+
locales: string[];
|
|
22001
22378
|
}>;
|
|
22002
22379
|
create: (body: CreateMarketRequestInput) => Promise<{
|
|
22003
22380
|
marketId: string;
|
|
@@ -22009,6 +22386,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
22009
22386
|
couponsEnabled: boolean;
|
|
22010
22387
|
pointsEnabled: boolean;
|
|
22011
22388
|
archivedAt: string | null;
|
|
22389
|
+
locales: string[];
|
|
22012
22390
|
}>;
|
|
22013
22391
|
update: (marketId: string, body: UpdateMarketRequestInput) => Promise<{
|
|
22014
22392
|
marketId: string;
|
|
@@ -22020,6 +22398,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
22020
22398
|
couponsEnabled: boolean;
|
|
22021
22399
|
pointsEnabled: boolean;
|
|
22022
22400
|
archivedAt: string | null;
|
|
22401
|
+
locales: string[];
|
|
22023
22402
|
}>;
|
|
22024
22403
|
archive: (marketId: string) => Promise<void>;
|
|
22025
22404
|
};
|
|
@@ -23621,6 +24000,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
23621
24000
|
termsUrl: string | null;
|
|
23622
24001
|
privacyUrl: string | null;
|
|
23623
24002
|
memberCount: number;
|
|
24003
|
+
defaultLocale: string;
|
|
23624
24004
|
createdAt: string;
|
|
23625
24005
|
businessName: string | null;
|
|
23626
24006
|
representativeName: string | null;
|
|
@@ -23678,6 +24058,7 @@ export declare function createStoreClient(options: StoreClientOptions): {
|
|
|
23678
24058
|
termsUrl: string | null;
|
|
23679
24059
|
privacyUrl: string | null;
|
|
23680
24060
|
memberCount: number;
|
|
24061
|
+
defaultLocale: string;
|
|
23681
24062
|
createdAt: string;
|
|
23682
24063
|
businessName: string | null;
|
|
23683
24064
|
representativeName: string | null;
|
|
@@ -24277,6 +24658,12 @@ export declare const customerDelegationSchema: z.ZodObject<{
|
|
|
24277
24658
|
}, z.core.$strip>;
|
|
24278
24659
|
export type CustomerDelegation = z.infer<typeof customerDelegationSchema>;
|
|
24279
24660
|
//#endregion
|
|
24661
|
+
//#region src/schemas/locale.d.ts
|
|
24662
|
+
export declare function normalizeLocale(value: string | null | undefined): string | null;
|
|
24663
|
+
/** 상점 기본 언어 — 옛 상점과 언어를 정하지 않은 상점의 값이다 */
|
|
24664
|
+
export declare const DEFAULT_STORE_LOCALE = "ko";
|
|
24665
|
+
export declare const localeCodeSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
24666
|
+
//#endregion
|
|
24280
24667
|
//#region src/schemas/promotion.d.ts
|
|
24281
24668
|
/** 쿠폰 종류 */
|
|
24282
24669
|
export declare const couponKindSchema: z.ZodEnum<{
|