import { ISkArticle, SkArticle } from './article'; import { Audit, IAudit } from './audit'; import { SkCategory, SkGiftType, SkOpengraph, SkValueType } from './etc'; import { ISkFile, SkFile } from './file'; import { ISkProduct, ISkProductOption, SkProduct, SkProductListItem } from './product'; export declare enum SkPromotionAccessPolicy { Public = "PUBLIC", Hidden = "HIDDEN" } export declare enum SkPromotionGiftServeType { All = "ALL", Select = "SELECT" } export interface SkPromotionCount { total?: number; trash?: number; } export interface ISkPromotionGift { id?: number; product?: ISkProduct; amount?: number; type?: SkGiftType; optionTitle?: string; optionValueTitle?: string; optionAddedPrice?: number; customTitle?: string; customImage?: ISkFile; customBrandName?: string; customPrice?: number; } export declare class SkPromotionGift { id: number; product: SkProduct; amount: number; type: SkGiftType; optionTitle: string; optionValueTitle: string; optionAddedPrice: number; customTitle: string; customImage: ISkFile; customBrandName: string; customPrice: number; constructor(data?: ISkPromotionGift); } export interface ISkPromotionGiftGroup { id?: number; serveType?: SkPromotionGiftServeType; gifts?: ISkPromotionGift[]; } export declare class SkPromotionGiftGroup { id: number; serveType: SkPromotionGiftServeType; gifts: ISkPromotionGift[]; constructor(data?: ISkPromotionGiftGroup); } export interface ISkPromotionTarget { id?: number; promotion?: ISkPromotion; product?: ISkProduct; isLimited?: boolean; stockAmount?: number; discountType?: SkValueType; discountValue?: number; giftGroups?: ISkPromotionGiftGroup[]; } export declare class SkPromotionTarget { id: number; promotion: SkPromotion; product: SkProduct; isLimited: boolean; stockAmount: number; discountType: SkValueType; discountValue: number; giftGroups: SkPromotionGiftGroup[]; constructor(data?: ISkPromotionTarget); } export interface ISkPromotionCategory { id?: number; category?: SkCategory; } export declare class SkPromotionCategory { id: number; category: SkCategory; constructor(data?: ISkPromotionCategory); } export interface ISkPromotion extends IAudit { id?: number; title?: string; startDate?: string; endDate?: string; endDateString?: string; rebateString?: string; accessPolicy?: SkPromotionAccessPolicy; categories?: ISkPromotionCategory[]; image?: ISkFile; imageAlt?: ISkFile; article?: ISkArticle; benefit?: ISkArticle; targets?: ISkPromotionTarget[]; opengraph?: SkOpengraph; listOrder?: number; activated?: boolean; } export declare class SkPromotion extends Audit { id: number; title: string; startDate: string; endDate: string; endDateString: string; rebateString: string; accessPolicy?: SkPromotionAccessPolicy; categories?: SkPromotionCategory[]; image: SkFile; imageAlt: SkFile; article: SkArticle; benefit: SkArticle; targets: SkPromotionTarget[]; opengraph: SkOpengraph; listOrder: number; activated: boolean; constructor(data?: ISkPromotion); isEmpty(): boolean; } export interface ISkPromotionGiftItem { id?: number; product?: SkProductListItem; amount?: number; type: SkGiftType; optionTitle: string; optionValueTitle: string; optionAddedPrice: number; customTitle: string; customImage: ISkFile; customBrandName: string; customPrice: number; } export interface ISkPromotionGiftGroupItem { serveType?: SkPromotionGiftServeType; gifts?: ISkPromotionGiftItem[]; } export interface ISkPromotionTargetItem { productId?: number; product?: SkProductListItem; isLimited?: boolean; stockAmount?: number; discountType?: SkValueType; discountValue?: number; giftGroups?: ISkPromotionGiftGroupItem[]; options?: ISkProductOption[]; } export interface ISkPromotionUpdateImage { image?: number; imageAlt?: number; } export interface ISkPromotionPublicList { id?: number; image?: ISkFile; imageAlt?: ISkFile; title?: string; endDate?: string; endDateString?: string; rebateString?: string; } export interface ISkPromotionPublicDetail extends ISkPromotionPublicList { content?: string; benefit?: string; targets?: ISkPromotionTargetItem[]; opengraph?: SkOpengraph; }