UNPKG

@wishcbg/bobcode

Version:

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

81 lines (80 loc) 6.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LinePushConfigResourceSchema = exports.linePushConfigResourceSettingSchema = void 0; const zod_1 = require("zod"); const couponSettingSchema = zod_1.z.object({ couponId: zod_1.z.string().optional().describe('票券ID'), notify: zod_1.z.boolean().optional().describe('是否啟用通知'), }).optional().describe('票券設定'); const couponRecordAdvancedSettingSchema = zod_1.z.object({ defaultCouponSetting: zod_1.z.object({ notify: zod_1.z.boolean().optional().describe('是否啟用通知'), }).optional().describe('預設票券設定'), couponSettings: zod_1.z.array(couponSettingSchema).optional().describe('票券設定'), }); exports.linePushConfigResourceSettingSchema = zod_1.z.object({ appointmentOpen: zod_1.z.boolean().default(true).describe('是否啟用預約建立通知'), appointmentChangeTime: zod_1.z.boolean().default(true).describe('是否啟用預約更改時間通知'), appointmentCancel: zod_1.z.boolean().default(true).describe('是否啟用預約取消通知'), appointmentTomorrow: zod_1.z.boolean().default(true).describe('是否啟用預約提醒(不僅限明日通知)'), appointmentEnd: zod_1.z.boolean().default(true).describe('是否啟用預約結束提醒'), appointmentDepositRefund: zod_1.z.boolean().default(true).describe('是否啟用預約訂金退款通知'), walletDeposit: zod_1.z.boolean().default(true).describe('是否啟用儲值金儲值通知'), walletUse: zod_1.z.boolean().default(true).describe('是否啟用儲值金使用通知'), classTicketOpen: zod_1.z.boolean().default(true).describe('是否啟用堂票建立通知'), classTicketUse: zod_1.z.boolean().default(true).describe('是否啟用堂票使用通知'), cancelClassTicket: zod_1.z.boolean().default(true).describe('是否啟用堂票取消通知'), cancelClassTicketUse: zod_1.z.boolean().default(true).describe('是否啟用堂票取消使用通知'), phoneVerifyHelp: zod_1.z.boolean().default(true).describe('是否啟用手機驗證協助通知(已棄用)'), allianceActivityAddQualification: zod_1.z.boolean().default(true).describe('是否啟用聯盟行銷資格通知(已棄用)'), couponRecordOpen: zod_1.z.boolean().default(true).describe('是否啟用票券建立通知'), couponRecordExpireNotification: zod_1.z.boolean().default(true).describe('是否啟用票券到期通知'), shopCashbackExpirationNotify: zod_1.z.boolean().default(true).describe('是否啟用回饋金到期通知'), shopCashbackAddPoint: zod_1.z.boolean().default(true).describe('是否啟用回饋金增加通知'), shopCashbackUsePoint: zod_1.z.boolean().default(true).describe('是否啟用回饋金使用通知'), shopCashbackCancelPoint: zod_1.z.boolean().default(true).describe('是否啟用回饋金取消通知'), classTicketExpireNotification: zod_1.z.boolean().default(true).describe('是否啟用堂票到期通知'), shopPointExpirationNotify: zod_1.z.boolean().default(true).describe('是否啟用點數到期通知'), shopPointAddPoint: zod_1.z.boolean().default(true).describe('是否啟用點數增加通知'), shopPointUsePoint: zod_1.z.boolean().default(true).describe('是否啟用點數使用通知'), shopPointCancelPoint: zod_1.z.boolean().default(true).describe('是否啟用店家點數取消通知'), memberLevelUp: zod_1.z.boolean().default(true).describe('是否啟用會員升等通知'), memberLevelDown: zod_1.z.boolean().default(false).describe('是否啟用會員降等通知'), memberLevelRemain: zod_1.z.boolean().default(true).describe('是否啟用會員續等通知'), memberLevelExpire: zod_1.z.boolean().default(true).describe('是否啟用會員等級到期通知'), memberSuccessReferral: zod_1.z.boolean().default(true).describe('是否啟用會員成功推薦通知'), punchCardOpen: zod_1.z.boolean().default(true).describe('是否啟用次卡新增/作廢訊息通知'), punchCardUse: zod_1.z.boolean().default(true).describe('是否啟用次卡使用/補發訊息通知'), punchCardExpireNotification: zod_1.z.boolean().default(true).describe('是否啟用次卡到期訊息通知'), pointCardOpen: zod_1.z.boolean().default(true).describe('是否啟用點數卡新增/作廢訊息通知'), pointCardUse: zod_1.z.boolean().default(true).describe('是否啟用點數卡使用/補發訊息通知'), pointCardExpireNotification: zod_1.z.boolean().default(true).describe('是否啟用點數卡到期訊息通知'), periodicBenefitRecordOpen: zod_1.z.boolean().default(true).describe('是否啟用會員權益紀錄新增推播'), periodicBenefitRecordPause: zod_1.z.boolean().default(true).describe('是否啟用會員權益紀錄暫停推播'), periodicBenefitRecordTerminate: zod_1.z.boolean().default(true).describe('是否啟用會員權益紀錄終止推播'), bindLineVisibleNotify: zod_1.z.boolean().default(true).describe('完成綁定後是否於群組傳送會員姓名與電話'), couponRecordOpenAdvancedSetting: couponRecordAdvancedSettingSchema.describe('票券建立進階設定通知'), couponRecordExpireNotificationAdvancedSetting: couponRecordAdvancedSettingSchema.describe('票券到期進階設定通知'), courseOrderConfirm: zod_1.z.boolean().default(true).describe('是否啟用課程報名成功'), courseOrderCancel: zod_1.z.boolean().default(true).describe('是否啟用課程報名取消'), courseOrderChange: zod_1.z.boolean().default(true).describe('是否啟用課程報名資訊變更'), courseSessionCancel: zod_1.z.boolean().default(true).describe('是否啟用課程報名停課'), courseOrderRefundSuccess: zod_1.z.boolean().default(true).describe('是否啟用課程報名退款成功'), courseOrderRefundFail: zod_1.z.boolean().default(true).describe('是否啟用課程報名退款失敗'), }).describe('LINE訊息通知設定'); // 改成export一個 config 而不是class exports.LinePushConfigResourceSchema = { // —— 基本欄位 resourceType: 'linePushConfig', resourceName: 'LINE訊息通知設定', resourceSettingSchema: exports.linePushConfigResourceSettingSchema, // —— 關聯 relationScope: 'shop', relationType: 'single', relationResources: [], // —— apply API path applySingleUpdateApiPath: '/:shopId/linePushConfig', applyCreateApiPath: null, applyUpdateApiPath: null, applyDestroyApiPath: null, };