UNPKG

@wishcbg/bobcode

Version:

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

41 lines (40 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomCardTemplateResourceSchema = exports.customCardTemplateResourceSettingSchema = void 0; const zod_1 = require("zod"); // enums 參考 config const memberCardStyles = ['classic', 'peaceful', 'lively', 'nature', 'fresh', 'simple', 'custom']; const cardSettingSchema = zod_1.z.object({ level: zod_1.z.number().int().min(1).max(6).describe('會員等級'), style: zod_1.z.enum(memberCardStyles).describe('樣式'), customImageId: zod_1.z.string().uuid().optional().describe('自訂圖片ID'), }); exports.customCardTemplateResourceSettingSchema = zod_1.z.object({ name: zod_1.z.string().describe('卡面樣板名稱'), cardSettings: zod_1.z.array(cardSettingSchema).describe('卡面樣板設定'), }).describe('會員卡面設定'); // 改成export一個 config 而不是class exports.CustomCardTemplateResourceSchema = { // —— 基本欄位 resourceType: 'customCardTemplate', resourceName: '會員卡面設定', resourceSettingSchema: exports.customCardTemplateResourceSettingSchema, // —— 關聯 relationScope: 'shop', relationType: 'multi', relationResources: [ { resourceType: 'image', settingSchemaField: 'cardSettings[*].customImageId', logicIdToResourceIdNewField: 'cardSettings[*].customImageIdtest', useLogicIdToResourceId: false, relationType: 'single', acceptsNullValue: true, }, ], // —— apply API path applySingleUpdateApiPath: null, applyCreateApiPath: '/:shopId/customCardTemplate', applyUpdateApiPath: '/:shopId/customCardTemplate/:resourceId', applyDestroyApiPath: '/:shopId/customCardTemplate/:resourceId', };