import { ISkArticle } from './article'; import { Audit, IAudit } from './audit'; import { ISkDocumentPublicList } from './document'; import { SkBrand, SkCatalogEmbed, SkCategory, SkKeyword, SkNaverEpEmbed, SkOpengraph, SkSubCategoryItem, SkValueType } from './etc'; import { ISkFile, SkFile } from './file'; import { ISkPromotionGiftGroupItem, ISkPromotionPublicList } from './promotion'; export interface SkProductCount { total?: number; trash?: number; } export interface SkProductStockCount { totalIn?: number; totalOut?: number; current?: number; } export declare enum SkProductType { Package = "PACKAGE", Single = "SINGLE" } export declare enum SkProductStuffType { Hardware = "HARDWARE", Software = "SOFTWARE", Furniture = "FURNITURE" } export declare enum SkProductStatus { Preorder = "PREORDER", Onsale = "ONSALE", Soldout = "SOLDOUT", Deactivate = "DEACTIVATE" } export declare enum SkProductAccessPolicy { Public = "PUBLIC", Hidden = "HIDDEN", PrivateLink = "PRIVATE_LINK", PrivateUser = "PRIVATE_USER" } export interface ISkProductBrand { id?: number; product?: ISkProduct; brand?: SkBrand; isDefault?: boolean; } export declare class SkProductBrand { id: number; product: SkProduct; brand: SkBrand; isDefault: boolean; constructor(data?: ISkProductBrand); } export interface ISkProductCategory { id?: number; product?: ISkProduct; category?: SkCategory; isDefault?: boolean; } export declare class SkProductCategory { id: number; product: SkProduct; category: SkCategory; isDefault: boolean; constructor(data?: ISkProductCategory); } export interface ISkProductImage { id?: number; product?: ISkProduct; file?: ISkFile; orderIndex?: number; } export declare class SkProductImage { id: number; product: SkProduct; file: SkFile; orderIndex: number; constructor(data?: ISkProductImage); } export declare enum SkProductOptionType { Base = "BASE", Additional = "ADDITIONAL", Multiple = "MULTIPLE" } export interface ISkProductOption { id?: number; type?: SkProductOptionType; title?: string; values?: ISkProductOptionValue[]; promotionOption?: boolean; } export interface ISkProductOptionValue { id?: number; title?: string; value?: string; addedPrice?: number; } export interface ISkProductOptionAnswer { id?: number; value?: any; } export interface ISkProductPackage { id?: number; children?: ISkProduct; hidden?: boolean; share?: number; amount?: number; } export declare class SkProductPackage { id: number; children: SkProduct; hidden: boolean; share: number; amount: number; constructor(data?: ISkProductPackage); } export interface SkProductPrice { message?: string; quotaFree?: boolean; paymentNaver?: boolean; original?: number; retail?: number; pointAmount?: number; pointType?: SkValueType; rebateAmount?: number; rebateType?: SkValueType; maxUsablePoint?: number; maxBuyCount?: number; wholesaleNormal?: number; wholesaleDealer?: number; wholesaleConditionA?: number; wholesaleConditionB?: number; wholesaleConditionC?: number; useVarPrice?: boolean; useVarPriceXc?: boolean; varCurrency?: string; varFormula?: string; varMap?: number; varCost?: number; varAddAmount?: number; varAddPercent?: number; varUpdatedDate?: string; } export interface SkProductStock { useStockHistory?: boolean; useAutoStatusChange?: boolean; useXchangeApi?: boolean; } export interface SkProductEDelivery { sku?: string; downloadLink?: string; template?: string; } export interface ISkProductStockHistory extends IAudit { id?: number; used?: boolean; serial?: string; memo?: string; } export interface ISkProduct extends IAudit { id?: number; title?: string; code?: string; url?: string; type?: SkProductType; stuffType?: SkProductStuffType; status?: SkProductStatus; preorderStartDate?: string; brands?: ISkProductBrand[]; categories?: ISkProductCategory[]; keywords?: SkKeyword[]; images?: ISkProductImage[]; accessPolicy?: SkProductAccessPolicy; accessPolicyValue?: string; price?: SkProductPrice; stockConfig?: SkProductStock; edelivery?: SkProductEDelivery; furnitureAssembly?: boolean; opengraph?: SkOpengraph; naverep?: SkNaverEpEmbed; catalog?: SkCatalogEmbed; options?: ISkProductOption[]; articleDesc?: ISkArticle; articleSpec?: ISkArticle; packages?: ISkProductPackage[]; activated?: boolean; listOrder?: number; viewCount?: number; simpleText?: string; } export declare class SkProduct extends Audit { id: number; title: string; code?: string; url?: string; type: SkProductType; stuffType: SkProductStuffType; status: SkProductStatus; preorderStartDate: string; brands: SkProductBrand[]; categories: SkProductCategory[]; keywords: SkKeyword[]; images: SkProductImage[]; accessPolicy: SkProductAccessPolicy; accessPolicyValue: string; price: SkProductPrice; stockConfig: SkProductStock; edelivery: SkProductEDelivery; furnitureAssembly: boolean; opengraph: SkOpengraph; naverep: SkNaverEpEmbed; catalog: SkCatalogEmbed; options: ISkProductOption[]; articleDesc: ISkArticle; articleSpec: ISkArticle; packages: SkProductPackage[]; activated: boolean; listOrder: number; viewCount: number; simpleText: string; constructor(data?: ISkProduct); isEmpty(): boolean; } export interface SkProductListItem { id?: number; title?: string; code?: string; url?: string; type?: SkProductType; stuffType?: SkProductStuffType; status?: SkProductStatus; hasPromotion?: boolean; hasGift?: boolean; realtimeSoftware?: boolean; furnitureAssembly?: boolean; brandName?: string; brandId?: number; brands?: ISkProductBrandItem[]; overseas?: boolean; wishlistCount?: number; wishlistMe?: boolean; image?: ISkFile; quotaFree?: boolean; priceMessage?: string; priceOriginal?: number; priceDiscounted?: number; priceMin?: number; priceMax?: number; maxBuyCount?: number; packageItems?: ISkProductPackageListItem[]; accessPolicy?: SkProductAccessPolicy; accessPolicyValue?: string; } export interface ISkProductDetail extends SkProductListItem { point?: number; includedInPackage?: boolean; images?: ISkFile[]; simpleText?: string; articleDesc?: ISkArticle; articleSpec?: ISkArticle; opengraph?: SkOpengraph; paymentNaver?: boolean; packageItems?: ISkProductPackageListItem[]; linkedSeries?: ISkProductDetailSeries[]; linkedDocuments?: ISkDocumentPublicList[]; linkedPromotions?: ISkPromotionPublicList[]; linkedPromotionGiftGroups?: ISkPromotionGiftGroupItem[]; } export interface ISkProductPackageListItem { id?: number; product?: SkProductListItem; showSpec?: boolean; showDesc?: boolean; orderIndex?: number; amount?: number; } export interface SkProductWishlist { wishlistCount?: number; wishlistMe?: boolean; } export interface ISkProductDetailSeriesItem { id?: number; title?: string; url?: string; } export interface ISkProductDetailSeries { id?: number; title?: string; items?: ISkProductDetailSeriesItem[]; } export interface ISkProductFilterData { lowestPrice?: number; highestPrice?: number; minPrice?: number; maxPrice?: number; availableBrands?: SkBrand[]; availableCategories?: SkCategory[]; availableSubCategories?: SkCategory[]; selectedSubCategoryItems?: SkSubCategoryItem[]; } export interface ISkProductBrandItem { id: number; name: string; } export interface ISkProductPublish { id?: number; productId?: number; status?: SkProductStatus; preorderStartDate?: string; accessPolicy?: SkProductAccessPolicy; actionDate?: string; activated?: boolean; } export declare function getSkProductStatusText(status: SkProductStatus): "판매 중지" | "판매중" | "예약판매" | "품절"; export declare function getSkProductAccessPolicyText(accessPolicy: SkProductAccessPolicy): "어드민 외 접근불가" | "링크로만 접근 가능" | "해당 유저만 접근 가능" | "공개";