UNPKG

@wishcbg/bobcode

Version:

基於店家同步功能的需求,讓店家能夠在不同的店家之間同步各項功能設定,並且能夠檢視各項功能的異動情況。 規劃出一套店家設定即程式碼的機制,讓店家能夠以 config file (.sac) 來定義各項功能設定,並且能夠還原店家各項功能設定。 暫且稱這個機制為「Settings as Code」「店家設定即程式碼」。

303 lines (302 loc) 11.6 kB
import { z } from 'zod'; import { BaseResourceSchema } from './base.js'; export declare const couponResourceSettingSchema: z.ZodObject<{ type: z.ZodEnum<["coupon", "exchange"]>; name: z.ZodString; expType: z.ZodDefault<z.ZodEnum<["expAt", "expDay", "endOfPeriod"]>>; expDay: z.ZodOptional<z.ZodNumber>; expAt: z.ZodOptional<z.ZodDate>; endOfPeriodUnit: z.ZodOptional<z.ZodEnum<["day", "week", "month", "quarter", "year"]>>; showMinute: z.ZodOptional<z.ZodNumber>; notice: z.ZodOptional<z.ZodString>; exchangeLink: z.ZodOptional<z.ZodString>; exchangeType: z.ZodOptional<z.ZodEnum<["share", "single"]>>; systemRedeem: z.ZodDefault<z.ZodBoolean>; sentCount: z.ZodDefault<z.ZodNumber>; firstSentLimit: z.ZodOptional<z.ZodNumber>; sentLimit: z.ZodOptional<z.ZodNumber>; extraStatus: z.ZodOptional<z.ZodObject<{ opentixEcouponId: z.ZodOptional<z.ZodString>; opentixIsDisabled: z.ZodOptional<z.ZodBoolean>; pospalEcouponId: z.ZodOptional<z.ZodString>; pospalIsDisabled: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { opentixEcouponId?: string | undefined; opentixIsDisabled?: boolean | undefined; pospalEcouponId?: string | undefined; pospalIsDisabled?: boolean | undefined; }, { opentixEcouponId?: string | undefined; opentixIsDisabled?: boolean | undefined; pospalEcouponId?: string | undefined; pospalIsDisabled?: boolean | undefined; }>>; extraSetting: z.ZodOptional<z.ZodObject<{ openTixConfig: z.ZodOptional<z.ZodObject<{ startTime: z.ZodDate; endTime: z.ZodDate; currentDiscount: z.ZodOptional<z.ZodNumber>; currentPrice: z.ZodOptional<z.ZodNumber>; quantityPerMember: z.ZodNumber; priceMinLimit: z.ZodOptional<z.ZodNumber>; priceMaxLimit: z.ZodOptional<z.ZodNumber>; description: z.ZodOptional<z.ZodString>; note: z.ZodOptional<z.ZodString>; organizers: z.ZodArray<z.ZodString, "many">; programs: z.ZodArray<z.ZodString, "many">; events: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; }, { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; }>>; posPalConfig: z.ZodOptional<z.ZodObject<{ couponDataHash: z.ZodString; startDate: z.ZodDate; endDate: z.ZodDate; description: z.ZodOptional<z.ZodString>; beginDays: z.ZodNumber; avaliableDays: z.ZodNumber; avaliableQuantity: z.ZodNumber; usedQuantity: z.ZodNumber; createdQuantity: z.ZodNumber; usageLimitType: z.ZodOptional<z.ZodString>; usageLimitTimes: z.ZodNumber; usageLimitAmountType: z.ZodOptional<z.ZodBoolean>; usageLimitAmount: z.ZodNumber; makeStartDate: z.ZodDate; makeEndDate: z.ZodDate; }, "strip", z.ZodTypeAny, { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; }, { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { openTixConfig?: { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; } | undefined; posPalConfig?: { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; } | undefined; }, { openTixConfig?: { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; } | undefined; posPalConfig?: { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; } | undefined; }>>; imageId: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "coupon" | "exchange"; name: string; expType: "expAt" | "expDay" | "endOfPeriod"; systemRedeem: boolean; sentCount: number; imageId?: string | undefined; expAt?: Date | undefined; expDay?: number | undefined; endOfPeriodUnit?: "month" | "day" | "week" | "quarter" | "year" | undefined; showMinute?: number | undefined; notice?: string | undefined; exchangeLink?: string | undefined; exchangeType?: "single" | "share" | undefined; firstSentLimit?: number | undefined; sentLimit?: number | undefined; extraStatus?: { opentixEcouponId?: string | undefined; opentixIsDisabled?: boolean | undefined; pospalEcouponId?: string | undefined; pospalIsDisabled?: boolean | undefined; } | undefined; extraSetting?: { openTixConfig?: { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; } | undefined; posPalConfig?: { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; } | undefined; } | undefined; }, { type: "coupon" | "exchange"; name: string; imageId?: string | undefined; expAt?: Date | undefined; expDay?: number | undefined; expType?: "expAt" | "expDay" | "endOfPeriod" | undefined; endOfPeriodUnit?: "month" | "day" | "week" | "quarter" | "year" | undefined; showMinute?: number | undefined; notice?: string | undefined; exchangeLink?: string | undefined; exchangeType?: "single" | "share" | undefined; systemRedeem?: boolean | undefined; sentCount?: number | undefined; firstSentLimit?: number | undefined; sentLimit?: number | undefined; extraStatus?: { opentixEcouponId?: string | undefined; opentixIsDisabled?: boolean | undefined; pospalEcouponId?: string | undefined; pospalIsDisabled?: boolean | undefined; } | undefined; extraSetting?: { openTixConfig?: { startTime: Date; endTime: Date; quantityPerMember: number; organizers: string[]; programs: string[]; events: string[]; description?: string | undefined; currentDiscount?: number | undefined; currentPrice?: number | undefined; priceMinLimit?: number | undefined; priceMaxLimit?: number | undefined; note?: string | undefined; } | undefined; posPalConfig?: { couponDataHash: string; startDate: Date; endDate: Date; beginDays: number; avaliableDays: number; avaliableQuantity: number; usedQuantity: number; createdQuantity: number; usageLimitTimes: number; usageLimitAmount: number; makeStartDate: Date; makeEndDate: Date; description?: string | undefined; usageLimitType?: string | undefined; usageLimitAmountType?: boolean | undefined; } | undefined; } | undefined; }>; export type ICouponResourceSettingSchema = z.infer<typeof couponResourceSettingSchema>; export declare const CouponResourceSchema: BaseResourceSchema<typeof couponResourceSettingSchema>;