@feedmepos/mf-order-setting 0.0.26 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/{KioskDevicesView-BiF6v7Zj.js → KioskDevicesView-BgXkmJ7v.js} +1 -1
  2. package/dist/KioskDevicesView.vue_vue_type_script_setup_true_lang-DZT0BuUN.js +301 -0
  3. package/dist/{KioskSettingView-COhGcRtP.js → KioskSettingView-DyX3Wv_2.js} +3 -3
  4. package/dist/{KioskView-C1T-n1MY.js → KioskView-Bgff7QPc.js} +5 -5
  5. package/dist/OrderSettingsView-C63s4uCD.js +74334 -0
  6. package/dist/app-Dp79Gu_F.js +1016 -0
  7. package/dist/app.js +1 -1
  8. package/dist/{dayjs.min-BHDLv42p.js → dayjs.min-B2ZkfNUH.js} +633 -641
  9. package/dist/frontend/mf-order/src/App.vue.d.ts +1 -1
  10. package/dist/frontend/mf-order/src/Entry.vue.d.ts +1 -1
  11. package/dist/frontend/mf-order/src/api/business/index.d.ts +5 -0
  12. package/dist/frontend/mf-order/src/api/effects/index.d.ts +3 -0
  13. package/dist/frontend/mf-order/src/api/index.d.ts +2 -0
  14. package/dist/frontend/mf-order/src/api/kiosk/index.d.ts +2 -0
  15. package/dist/frontend/mf-order/src/app.d.ts +336 -0
  16. package/dist/frontend/mf-order/src/components/GoogleMap.vue.d.ts +3 -5
  17. package/dist/frontend/mf-order/src/main.d.ts +79 -0
  18. package/dist/frontend/mf-order/src/modules/kiosk/interface.d.ts +5 -1
  19. package/dist/frontend/mf-order/src/stores/business/index.d.ts +62 -0
  20. package/dist/frontend/mf-order/src/stores/kiosk/index.d.ts +16 -1
  21. package/dist/frontend/mf-order/src/stores/menu/menu.d.ts +207 -112
  22. package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +81 -78
  23. package/dist/frontend/mf-order/src/views/all-orders/ActionMenuCell.vue.d.ts +2 -2
  24. package/dist/frontend/mf-order/src/views/all-orders/FilterRestaurant.vue.d.ts +1 -1
  25. package/dist/frontend/mf-order/src/views/all-orders/FilterStatus.vue.d.ts +2 -2
  26. package/dist/frontend/mf-order/src/views/all-orders/FilterStatusMenu.vue.d.ts +2 -2
  27. package/dist/frontend/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +56 -54
  28. package/dist/frontend/mf-order/src/views/all-orders/UpdateDeliveryOrderDialog.vue.d.ts +2 -2
  29. package/dist/frontend/mf-order/src/views/kiosk/KioskSummary.vue.d.ts +1 -1
  30. package/dist/frontend/mf-order/src/views/kiosk/KioskView.vue.d.ts +1 -1
  31. package/dist/frontend/mf-order/src/views/kiosk/devices/KioskDeviceCard.vue.d.ts +1 -1
  32. package/dist/frontend/mf-order/src/views/kiosk/devices/KioskDeviceDetail.vue.d.ts +1 -1
  33. package/dist/frontend/mf-order/src/views/kiosk/devices/KioskDevicesView.vue.d.ts +1 -1
  34. package/dist/frontend/mf-order/src/views/kiosk/devices/KioskOtpDialog.vue.d.ts +1 -1
  35. package/dist/frontend/mf-order/src/views/kiosk/devices/KioskUnbindConfirm.vue.d.ts +2 -2
  36. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskDineInSection.vue.d.ts +2 -2
  37. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskDisplayStandSection.vue.d.ts +2 -2
  38. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskEnablePaxDialogSection.vue.d.ts +2 -2
  39. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskInstructionSection.vue.d.ts +2 -2
  40. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskMenuItemSection.vue.d.ts +1 -1
  41. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskPaymentTypeSection.vue.d.ts +1 -1
  42. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskPickAtCounterSection.vue.d.ts +2 -2
  43. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskSettingView.vue.d.ts +1 -1
  44. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskTakeawaySection.vue.d.ts +2 -2
  45. package/dist/frontend/mf-order/src/views/order-settings/delivery/DeliveryList.vue.d.ts +2 -2
  46. package/dist/frontend/mf-order/src/views/order-settings/delivery/components/ManualIntegratedDeliverySetting.vue.d.ts +1 -1
  47. package/dist/frontend/mf-order/src/views/order-settings/delivery/components/TaxInput.vue.d.ts +2 -2
  48. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/CurrencyInput.vue.d.ts +1 -1
  49. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/DeliveryCustomTime.vue.d.ts +1 -1
  50. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/DeliveryOrder.vue.d.ts +6 -141
  51. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/DeliveryTime.vue.d.ts +1 -1
  52. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue.d.ts +1 -1
  53. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/TimePicker.vue.d.ts +1 -1
  54. package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/ZoneDialog.vue.d.ts +1 -1
  55. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue.d.ts +6 -2
  56. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/FeedmeDelivery.vue.d.ts +1 -1
  57. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/FoodpandaCampaignDialog.vue.d.ts +1 -1
  58. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue.d.ts +1 -1
  59. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue.d.ts +1 -1
  60. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue.d.ts +5 -5
  61. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue.d.ts +1 -1
  62. package/dist/frontend/mf-order/src/views/order-settings/dine-in/OfflinePaymentTypeDialog.vue.d.ts +1 -1
  63. package/dist/frontend/mf-order/src/views/order-settings/dine-in/OfflinePaymentTypeDialogContent.vue.d.ts +2 -2
  64. package/dist/frontend/mf-order/src/views/order-settings/dine-in/PaymentType.vue.d.ts +1 -1
  65. package/dist/frontend/mf-order/src/views/order-settings/discount-rule/DiscountRuleSetting.vue.d.ts +2 -0
  66. package/dist/frontend/mf-order/src/views/order-settings/pickup/AddressInput.vue.d.ts +1 -1
  67. package/dist/frontend/mf-order/src/views/order-settings/pickup/CustomPayment.vue.d.ts +1 -1
  68. package/dist/frontend/mf-order/src/views/order-settings/pickup/PaymentSidesheet.vue.d.ts +2 -2
  69. package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpPointDialog.vue.d.ts +1 -1
  70. package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpPointDialogContent.vue.d.ts +2 -137
  71. package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpSettingDialog.vue.d.ts +1 -1
  72. package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpSettingDialogContent.vue.d.ts +1 -1
  73. package/dist/frontend/mf-order/src/views/order-settings/pickup/PickupList.vue.d.ts +2 -2
  74. package/dist/frontend/mf-order/src/views/order-settings/pickup/Preorder.vue.d.ts +1 -1
  75. package/dist/frontend/mf-order/src/views/order-settings/servicecharge/RateInput.vue.d.ts +1 -1
  76. package/dist/frontend/mf-order/src/views/order-settings/servicecharge/ServiceChargeRule.vue.d.ts +1 -1
  77. package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
  78. package/dist/{index-DSCb3ndM.js → index-BXsnV_eO.js} +5 -5
  79. package/dist/{index-B5kfsi9C.js → index-DzQn92Tp.js} +2 -2
  80. package/dist/package/entity/booking/booking.do.d.ts +596 -551
  81. package/dist/package/entity/cursor/cursor.dto.d.ts +2 -2
  82. package/dist/package/entity/delivery/delivery.dto.d.ts +118 -109
  83. package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +349 -659
  84. package/dist/package/entity/incoming-order/incoming-order.do.d.ts +13800 -487
  85. package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +746 -1245
  86. package/dist/package/entity/incoming-order/incoming-order.enum.d.ts +1 -1
  87. package/dist/package/entity/index.d.ts +1 -0
  88. package/dist/package/entity/kiosk/kiosk.do.d.ts +64 -0
  89. package/dist/package/entity/kiosk/kiosk.dto.d.ts +79 -0
  90. package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +1469 -621
  91. package/dist/package/entity/member/member.dto.d.ts +14 -7
  92. package/dist/package/entity/order/dine-in/dine-in.do.d.ts +8 -8
  93. package/dist/package/entity/order/dine-in/dine-in.dto.d.ts +4 -4
  94. package/dist/package/entity/order/effects/effect.dto.d.ts +154 -6
  95. package/dist/package/entity/order/menu/menu.dto.d.ts +12 -12
  96. package/dist/package/entity/order/order-item/order-item.dto.d.ts +101 -42
  97. package/dist/package/entity/order/order.do.d.ts +206 -601
  98. package/dist/package/entity/order/order.dto.d.ts +1096 -1600
  99. package/dist/package/entity/order/order.enum.d.ts +2 -2
  100. package/dist/package/entity/order-platform/external/menu/external-menu.dto.d.ts +8 -0
  101. package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +8 -0
  102. package/dist/package/entity/order-platform/external/order/external-order.dto.d.ts +22 -3
  103. package/dist/package/entity/order-platform/external/order/external-order.enum.d.ts +1 -1
  104. package/dist/package/entity/order-platform/external/setting/external-setting.do.d.ts +5 -0
  105. package/dist/package/entity/order-platform/external/setting/external-setting.dto.d.ts +5 -0
  106. package/dist/package/entity/order-platform/external/zus/zus-menu.dto.d.ts +192 -0
  107. package/dist/package/entity/order-platform/foodpanda/foodpanda-order.do.d.ts +104 -0
  108. package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +152 -109
  109. package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.do.d.ts +3 -0
  110. package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.dto.d.ts +3 -0
  111. package/dist/package/entity/order-platform/foodpanda/foodpanda.enum.d.ts +2 -0
  112. package/dist/package/entity/order-platform/grabfood/grabfood-order.do.d.ts +139 -109
  113. package/dist/package/entity/order-platform/grabfood/grabfood-settings.do.d.ts +3 -0
  114. package/dist/package/entity/order-platform/grabfood/grabfood.dto.d.ts +112 -2
  115. package/dist/package/entity/order-platform/menu.dto.d.ts +31 -0
  116. package/dist/package/entity/order-platform/order-platform.dto.d.ts +6 -3
  117. package/dist/package/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +164 -109
  118. package/dist/package/entity/order-platform/shopeefood/shopeefood-order.dto.d.ts +22 -0
  119. package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.do.d.ts +3 -0
  120. package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.dto.d.ts +3 -0
  121. package/dist/{queue.do-y-ubeoKZ.js → queue.do-BUtcyDk3.js} +53522 -50841
  122. package/package.json +4 -3
  123. package/src/api/business/index.ts +16 -0
  124. package/src/api/effects/index.ts +7 -0
  125. package/src/api/index.ts +9 -1
  126. package/src/api/kiosk/index.ts +9 -4
  127. package/src/app.ts +4 -1
  128. package/src/locales/en-US.json +24 -1
  129. package/src/locales/th-TH.json +31 -1
  130. package/src/locales/zh-CN.json +27 -1
  131. package/src/modules/kiosk/interface.ts +5 -1
  132. package/src/stores/business/index.ts +45 -0
  133. package/src/stores/kiosk/index.ts +9 -4
  134. package/src/stores/kiosk/mapper.ts +5 -1
  135. package/src/stores/restaurant/index.ts +3 -1
  136. package/src/views/kiosk/devices/KioskDeviceCard.vue +202 -80
  137. package/src/views/order-settings/OrderSettingsView.vue +17 -5
  138. package/src/views/order-settings/delivery/DeliverySetting.vue +1 -1
  139. package/src/views/order-settings/delivery/delivery.data.ts +2 -2
  140. package/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue +14 -2
  141. package/src/views/order-settings/delivery/integrated-delivery/FoodpandaSetting.vue +2 -34
  142. package/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue +15 -12
  143. package/src/views/order-settings/discount-rule/DiscountRuleSetting.vue +434 -0
  144. package/dist/KioskDevicesView.vue_vue_type_script_setup_true_lang-1r_DBAc-.js +0 -207
  145. package/dist/OrderSettingsView-CI5bdVXr.js +0 -72108
  146. package/dist/app-BfWp4ow3.js +0 -682
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-order-setting",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "type": "module",
5
5
  "module": "./dist/app.js",
6
6
  "license": "UNLICENSED",
@@ -21,12 +21,13 @@
21
21
  "build:dev": "cross-env NODE_ENV=dev vite build --mode dev",
22
22
  "build:prod": "vite build --mode prod",
23
23
  "type-check": "set NODE_OPTIONS=--max-old-space-size=16384 && vue-tsc --noEmit -p tsconfig.app.json --composite false",
24
+ "type-check:mac": "export NODE_OPTIONS=--max-old-space-size=16384 && vue-tsc --noEmit -p tsconfig.app.json --composite false",
24
25
  "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
25
26
  "format": "prettier --write src/"
26
27
  },
27
28
  "dependencies": {
28
- "@feedmepos/core": "^2.14.0",
29
- "@feedmepos/menu": "^1.5.6",
29
+ "@feedmepos/core": "^2.14.19",
30
+ "@feedmepos/menu": "^1.5.18",
30
31
  "@feedmepos/mf-common": "1.20.0-beta.2",
31
32
  "@feedmepos/ordering": "^0.0.3",
32
33
  "@feedmepos/ui-library": "1.5.2-beta.1",
@@ -0,0 +1,16 @@
1
+ import { getData, businessClientInstance } from '@/api'
2
+ import { FdtoDiscountRuleRes, FdoDiscountRule } from '@feedmepos/core/entity'
3
+
4
+ export const businessApi = {
5
+ async readDiscountRule(businessId: string): Promise<FdtoDiscountRuleRes> {
6
+ const result = await businessClientInstance(businessId).get('/discount-rule')
7
+ return getData(result)
8
+ },
9
+ async updateDiscountRule(
10
+ businessId: string,
11
+ discountRule: FdoDiscountRule
12
+ ): Promise<FdtoDiscountRuleRes> {
13
+ const result = await businessClientInstance(businessId).put('/discount-rule', discountRule)
14
+ return getData(result)
15
+ }
16
+ }
@@ -0,0 +1,7 @@
1
+ import { getData, marketingBackendClientInstance } from '..';
2
+
3
+ export const effectApi = {
4
+ async getEffects(businessId:string): Promise<any> {
5
+ return getData(await marketingBackendClientInstance().get(`/businesses/${businessId}/effects`)).data;
6
+ }
7
+ };
package/src/api/index.ts CHANGED
@@ -12,6 +12,7 @@ interface ApiUrl {
12
12
  menuBackendUrl: string
13
13
  smsBackendUrl: string
14
14
  accountBackendUrl: string
15
+ marketingBackendUrl: string
15
16
  }
16
17
 
17
18
  let apiUrl: ApiUrl | null = null
@@ -57,13 +58,15 @@ function generateBackendUrl(country: F_COUNTRY): ApiUrl {
57
58
  const domain = `${isDev ? '-dev' : ''}${area}.feedmeapi.com`
58
59
  const portalBackendUrl = `https://portal-v2${domain}`
59
60
  const accountBackendUrl = `https://account${domain}`
61
+ const marketingBackendUrl = `https://portal-marketing${domain}`
60
62
  return {
61
63
  portalBackendUrl,
62
64
  websocketBackendUrl: `wss://94ilf9iqc0.execute-api.ap-southeast-1.amazonaws.com/${isDev ? 'dev' : 'prod'}`,
63
65
  linkedDeliveryBackend: `${portalBackendUrl}/linked-deliveries`,
64
66
  menuBackendUrl: `${portalBackendUrl}/menu-v4`,
65
67
  smsBackendUrl: `https://sms${domain}`,
66
- accountBackendUrl
68
+ accountBackendUrl,
69
+ marketingBackendUrl
67
70
  }
68
71
  }
69
72
 
@@ -179,6 +182,11 @@ export const smsBackendClientInstance = (): AxiosInstance => {
179
182
  return baseClientInstance('', 'portal', { url: smsBackendUrl })
180
183
  }
181
184
 
185
+ export const marketingBackendClientInstance = (): AxiosInstance => {
186
+ const { marketingBackendUrl } = SvcConfig.getBackendUrl()
187
+ return baseClientInstance('', 'portal', { url: marketingBackendUrl })
188
+ }
189
+
182
190
  export function getData<T>(response: AxiosResponse<T>): T {
183
191
  return response.data
184
192
  }
@@ -1,22 +1,27 @@
1
1
  import { getData, restaurantClientInstance } from '@/api';
2
2
  import { KioskOtpDto, KioskDeviceDto } from '@entity';
3
3
 
4
- async function requestOtp() : Promise<KioskOtpDto>{
4
+ async function requestOtp(): Promise<KioskOtpDto> {
5
5
  const result = await restaurantClientInstance().get('/kiosk/otp');
6
6
  return getData<KioskOtpDto>(result);
7
7
  }
8
8
 
9
- async function getDevices(): Promise<KioskDeviceDto[]>{
9
+ async function getDevices(): Promise<KioskDeviceDto[]> {
10
10
  const result = await restaurantClientInstance().get('/kiosk/devices');
11
11
  return getData<KioskDeviceDto[]>(result);
12
12
  }
13
13
 
14
- async function unbind(machineId: string): Promise<void>{
14
+ async function unbind(machineId: string): Promise<void> {
15
15
  await restaurantClientInstance().delete(`/kiosk/unbind/${machineId}`);
16
16
  }
17
17
 
18
+ async function updateDevicePin(pinInfo: string, machineId: string): Promise<void> {
19
+ await restaurantClientInstance().put(`/kiosk/updateDevicePin/${machineId}`, { pinInfo });
20
+ }
21
+
18
22
  export const KioskApi = {
19
23
  requestOtp,
20
24
  getDevices,
21
- unbind
25
+ unbind,
26
+ updateDevicePin
22
27
  };
package/src/app.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import enUS from "./locales/en-US.json"
2
2
  import zhCN from "./locales/zh-CN.json"
3
+ import thTh from "./locales/th-TH.json"
4
+
3
5
  export type AppMessagesSchema = typeof enUS
4
6
 
5
7
  export const i18nMessages = {
6
8
  "en-US": enUS,
7
- "zh-CN": zhCN
9
+ "zh-CN": zhCN,
10
+ "th-TH": thTh,
8
11
  }
9
12
 
10
13
  export { default as FmApp } from './App.vue'
@@ -264,6 +264,29 @@
264
264
  "pickupCatalog": "Pickup catalog",
265
265
  "DeliverySettingUpdated": "Delivery setting updated.",
266
266
  "selectPlatform": "Select Platform",
267
- "platform": "Platform"
267
+ "platform": "Platform",
268
+ "discountRule": {
269
+ "add": "Add discount rule",
270
+ "description": "Define how the discount is applied to the bill. Require POS version {minPosVersion} or above.",
271
+ "effect": "Promotion/Vouchers",
272
+ "effectSelected": "{count} selected",
273
+ "effectUsedInOtherGroup": "Used in another rule",
274
+ "forceSync": "Force sync",
275
+ "latest": "Latest",
276
+ "loadingRestaurants": "Loading restaurants",
277
+ "maxTotalUses": "Max total uses",
278
+ "maxTotalUsesSublabel": "Maximum times promotions/vouchers can be used per bill",
279
+ "outdated": "Outdated",
280
+ "restaurantName": "Restaurant Name",
281
+ "restaurants": "Restaurants",
282
+ "restaurantsDescription": "Sync status of the discount rule across all restaurants",
283
+ "selectAllEffects": "Select all promotions/vouchers",
284
+ "selectEffects": "Select promotions/vouchers",
285
+ "status": "Status",
286
+ "syncSuccess": "Discount rule setting synced to all restaurants",
287
+ "title": "Discount Rule",
288
+ "updateSuccess": "Discount rule setting updated",
289
+ "version": "Version"
290
+ }
268
291
  }
269
292
  }
@@ -252,6 +252,36 @@
252
252
  "updatePickupSetting": "อัปเดตการตั้งค่าการรับสินค้า",
253
253
  "updateSetting": "อัปเดตการตั้งค่า",
254
254
  "vendorBearPercentage": "เปอร์เซ็นต์ที่ผู้ขายรับผิดชอบ",
255
- "wednesday": "วันพุธ"
255
+ "wednesday": "วันพุธ",
256
+ "externalDelivery": "จัดการการจัดส่ง External",
257
+ "manageExternalDelivery": "จัดการการจัดส่งภายนอก",
258
+ "deliveryCatalog": "แคตตาล็อกการจัดส่ง",
259
+ "pickupCatalog": "แคตตาล็อกการรับสินค้า",
260
+ "DeliverySettingUpdated": "อัปเดตการตั้งค่าการจัดส่งแล้ว",
261
+ "selectPlatform": "เลือกแพลตฟอร์ม",
262
+ "platform": "แพลตฟอร์ม",
263
+ "discountRule": {
264
+ "add": "เพิ่มกฎส่วนลด",
265
+ "description": "กำหนดวิธีการใช้ส่วนลดในบิล ใช้ได้กับ POS เวอร์ชัน {minPosVersion} หรือใหม่กว่าเท่านั้น",
266
+ "effect": "โปรโมชั่น/บัตรกำนัล",
267
+ "effectSelected": "เลือกแล้ว {count} รายการ",
268
+ "effectUsedInOtherGroup": "ถูกใช้ในกฎอื่น",
269
+ "forceSync": "ซิงค์ข้อมูลแบบบังคับ",
270
+ "latest": "เผยแพร่ล่าสุด",
271
+ "loadingRestaurants": "กำลังโหลดร้านอาหาร",
272
+ "maxTotalUses": "จำนวนการใช้งานสูงสุด",
273
+ "maxTotalUsesSublabel": "จำนวนครั้งสูงสุดที่สามารถใช้โปรโมชั่น/บัตรกำนัลต่อบิล",
274
+ "outdated": "ล้าสมัย",
275
+ "restaurantName": "ชื่อร้านอาหาร",
276
+ "restaurants": "ร้านอาหาร",
277
+ "restaurantsDescription": "สถานะการซิงค์กฎส่วนลดของทุกร้านอาหาร",
278
+ "selectAllEffects": "เลือกโปรโมชั่น/บัตรกำนัลทั้งหมด",
279
+ "selectEffects": "เลือกโปรโมชั่น/บัตรกำนัล",
280
+ "status": "สถานะ",
281
+ "syncSuccess": "ซิงค์กฎส่วนลดไปยังร้านอาหารทั้งหมดเรียบร้อยแล้ว",
282
+ "title": "กฎส่วนลด",
283
+ "updateSuccess": "อัปเดตกฎส่วนลดเรียบร้อยแล้ว",
284
+ "version": "เวอร์ชัน"
285
+ }
256
286
  }
257
287
  }
@@ -91,6 +91,7 @@
91
91
  "edit": "编辑",
92
92
  "editOfflinePayment": "编辑线下支付方式",
93
93
  "editPickupPoint": "编辑取货地点",
94
+ "effectSelected": "已选择效果",
94
95
  "enableServiceCharge": "启用服务费",
95
96
  "end": "结束",
96
97
  "enterAddress": "输入地址",
@@ -203,6 +204,8 @@
203
204
  "search": "搜索",
204
205
  "searchRestaurant": "搜索餐厅",
205
206
  "selectAllItemsIncludeCustomItem": "全部 (包括自定义商品)",
207
+ "selectEffects": "选择效果",
208
+ "selectAllEffects": "选择所有效果",
206
209
  "selectItem": "请选择",
207
210
  "selectRestaurant": "选择餐厅",
208
211
  "selectServiceChargeType": "选择服务费类型",
@@ -264,6 +267,29 @@
264
267
  "pickupCatalog": "自取目录",
265
268
  "DeliverySettingUpdated": "配送设置已更新",
266
269
  "selectPlatform": "选择平台",
267
- "platform": "平台"
270
+ "platform": "平台",
271
+ "discountRule": {
272
+ "add": "添加折扣规则",
273
+ "description": "定义折扣在账单中如何应用。仅适用于POS版本{minPosVersion}或更高版本。",
274
+ "effect": "促销/代金券",
275
+ "effectSelected": "已选择{count}个",
276
+ "effectUsedInOtherGroup": "已在其他规则中使用",
277
+ "forceSync": "强制同步",
278
+ "latest": "已发布",
279
+ "loadingRestaurants": "正在加载餐厅",
280
+ "maxTotalUses": "最大使用次数",
281
+ "maxTotalUsesSublabel": "每张账单最多可使用促销/代金券次数",
282
+ "outdated": "过时",
283
+ "restaurantName": "餐厅名称",
284
+ "restaurants": "餐厅",
285
+ "restaurantsDescription": "所有餐厅的折扣规则同步状态",
286
+ "selectAllEffects": "选择所有促销/代金券",
287
+ "selectEffects": "选择促销/代金券",
288
+ "status": "状态",
289
+ "syncSuccess": "折扣规则设置已同步到所有餐厅",
290
+ "title": "折扣规则",
291
+ "updateSuccess": "折扣规则设置已更新",
292
+ "version": "版本"
293
+ }
268
294
  }
269
295
  }
@@ -1,4 +1,4 @@
1
- import { Printer, ScannerInfoDto, KioskTerminalInfoDto } from '@entity';
1
+ import { Printer, ScannerInfoDto, KioskTerminalInfoDto, F_ORDER_PLATFORM_TYPE } from '@entity';
2
2
  export interface MfKioskDeviceConfigs {
3
3
  printerInfo?: Printer,
4
4
  scannerInfo?: ScannerInfoDto,
@@ -10,6 +10,10 @@ export interface MfKioskDevice {
10
10
  machineId: string,
11
11
  config: MfKioskDeviceConfigs,
12
12
  activatedAt: Date,
13
+ deviceAppType?: F_ORDER_PLATFORM_TYPE,
14
+ slotInfo?: string,
15
+ pinInfo?: string,
16
+ deviceAppVersion?: string,
13
17
  }
14
18
 
15
19
 
@@ -0,0 +1,45 @@
1
+ import { defineStore } from 'pinia'
2
+ import { FdtoDiscountRuleRes, FdoDiscountRule } from '@feedmepos/core/entity'
3
+ import { useCoreStore } from '@feedmepos/mf-common'
4
+ import { ref } from 'vue'
5
+ import { businessApi } from '@/api/business'
6
+
7
+ interface BusinessState {
8
+ discountRule?: FdtoDiscountRuleRes
9
+ }
10
+
11
+ function initBusinessState(): BusinessState {
12
+ return {
13
+ discountRule: undefined
14
+ }
15
+ }
16
+
17
+ export const useBusinessStore = defineStore('business', () => {
18
+ const coreStore = useCoreStore()
19
+ const state = ref(initBusinessState())
20
+
21
+ async function readDiscountRule(): Promise<FdtoDiscountRuleRes> {
22
+ if (!coreStore.currentBusiness.value?._id) {
23
+ throw new Error('No business selected.')
24
+ }
25
+ const discountRule = await businessApi.readDiscountRule(coreStore.currentBusiness.value._id)
26
+ state.value.discountRule = discountRule
27
+ return discountRule
28
+ }
29
+ async function updateDiscountRule(discountRule: FdoDiscountRule): Promise<FdtoDiscountRuleRes> {
30
+ if (!coreStore.currentBusiness.value?._id) {
31
+ throw new Error('No business selected.')
32
+ }
33
+ const updatedRule = await businessApi.updateDiscountRule(
34
+ coreStore.currentBusiness.value._id,
35
+ discountRule
36
+ )
37
+ state.value.discountRule = updatedRule
38
+ return updatedRule
39
+ }
40
+ return {
41
+ state: state.value,
42
+ readDiscountRule,
43
+ updateDiscountRule
44
+ }
45
+ })
@@ -5,7 +5,7 @@ import { type MfKioskDevice } from "../../modules/kiosk/interface";
5
5
  import { KioskMapper } from "./mapper";
6
6
 
7
7
  interface State {
8
- otp : string;
8
+ otp: string;
9
9
  devices: MfKioskDevice[];
10
10
  }
11
11
 
@@ -16,25 +16,30 @@ export const useKioskStore = defineStore('kiosk', () => {
16
16
  devices: [],
17
17
  });
18
18
 
19
- async function requestOtp(){
19
+ async function requestOtp() {
20
20
  const result = await KioskApi.requestOtp();
21
21
  state.value.otp = result.otp;
22
22
  }
23
23
 
24
- async function getDevices(){
24
+ async function getDevices() {
25
25
  const result = await KioskApi.getDevices();
26
26
  state.value.devices = result.map((r) => KioskMapper.toMfKioskDevice(r));
27
27
  }
28
28
 
29
- async function unbind(machineId: string){
29
+ async function unbind(machineId: string) {
30
30
  await KioskApi.unbind(machineId);
31
31
  await getDevices();
32
32
  }
33
33
 
34
+ async function updateDevicePin(pinInfo: string, machineId: string) {
35
+ await KioskApi.updateDevicePin(pinInfo, machineId);
36
+ }
37
+
34
38
  return {
35
39
  state: state.value,
36
40
  requestOtp,
37
41
  getDevices,
38
42
  unbind,
43
+ updateDevicePin
39
44
  }
40
45
  });
@@ -1,7 +1,7 @@
1
1
  import { type MfKioskDevice } from "@/modules/kiosk/interface";
2
2
  import type { KioskDeviceDto } from "@entity";
3
3
 
4
- const toMfKioskDevice = (dto : KioskDeviceDto) : MfKioskDevice => {
4
+ const toMfKioskDevice = (dto: KioskDeviceDto): MfKioskDevice => {
5
5
  return {
6
6
  name: dto.name ?? 'N/A',
7
7
  machineId: dto.machineId,
@@ -11,6 +11,10 @@ const toMfKioskDevice = (dto : KioskDeviceDto) : MfKioskDevice => {
11
11
  terminalInfo: dto.terminalInfo ?? undefined,
12
12
  },
13
13
  activatedAt: tokenToActivatedAt(dto.token),
14
+ deviceAppType: dto.deviceAppType ?? undefined,
15
+ slotInfo: dto.slotInfo ?? undefined,
16
+ pinInfo: dto.pinInfo ?? undefined,
17
+ deviceAppVersion: dto.deviceAppVersion ?? undefined,
14
18
  };
15
19
  };
16
20
 
@@ -13,6 +13,8 @@ import {
13
13
  type FdoAddress,
14
14
  type FdoProfile,
15
15
  FdoRestaurant,
16
+ FdoRestaurantSetting,
17
+ type FdoEffectGroup
16
18
  } from '@feedmepos/core/entity'
17
19
  import { FdoExternalSetting, FdoGrabfoodSettings } from '@entity'
18
20
  import { FeatureFlag, Pos } from '@feedmepos/core'
@@ -145,6 +147,6 @@ export const useRestaurantStore = defineStore('restaurant', () => {
145
147
  updateIntegratedGrabfoodDelivery,
146
148
  updateIntegratedShopeefoodDelivery,
147
149
  updateExternalDelivery,
148
- getRestaurantEPayment
150
+ getRestaurantEPayment,
149
151
  }
150
152
  })