@wishcbg/bobcode
Version:
基於店家同步功能的需求,讓店家能夠在不同的店家之間同步各項功能設定,並且能夠檢視各項功能的異動情況。 規劃出一套店家設定即程式碼的機制,讓店家能夠以 config file (.sac) 來定義各項功能設定,並且能夠還原店家各項功能設定。 暫且稱這個機制為「Settings as Code」「店家設定即程式碼」。
303 lines (302 loc) • 11.6 kB
TypeScript
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>;