@fctc/interface-logic 4.3.9 → 4.4.1

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.
package/dist/hooks.js CHANGED
@@ -35,6 +35,7 @@ __export(hooks_exports, {
35
35
  useChangeOrderPreparationState: () => use_change_order_preparation_state_default,
36
36
  useChangeStatus: () => use_change_status_default,
37
37
  useCheckPayment: () => use_check_payment_default,
38
+ useCompleteCurrentStage: () => use_complete_current_stage_default,
38
39
  useCreateEInvoice: () => use_create_e_invoice_default,
39
40
  useCreateEntity: () => use_create_entity_default,
40
41
  useCreatePosConfig: () => use_create_pos_config_default,
@@ -102,7 +103,6 @@ __export(hooks_exports, {
102
103
  useHandleCloseSession: () => use_handle_close_session_default,
103
104
  useHandleClosingDetailSession: () => use_handle_closing_detail_session_default,
104
105
  useHandleClosingSession: () => use_handle_closing_session_default,
105
- useInitSnapshot: () => use_init_snapshot_default,
106
106
  useIsValidToken: () => use_isvalid_token_default,
107
107
  useLoadAction: () => use_load_action_default,
108
108
  useLoadDataPosSession: () => use_load_data_pos_session_default,
@@ -150,7 +150,7 @@ module.exports = __toCommonJS(hooks_exports);
150
150
  var import_react_query3 = require("@tanstack/react-query");
151
151
 
152
152
  // src/services/action-service/index.ts
153
- var import_react7 = require("react");
153
+ var import_react8 = require("react");
154
154
 
155
155
  // src/constants/api/uri-constant.ts
156
156
  var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
@@ -201,6 +201,58 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
201
201
  // src/utils/format.ts
202
202
  var import_moment = __toESM(require("moment"));
203
203
 
204
+ // src/constants/model/model-constant.ts
205
+ var LoadDataModel = /* @__PURE__ */ ((LoadDataModel2) => {
206
+ LoadDataModel2["ACCOUNT_CASH_ROUNDING"] = "account.cash.rounding";
207
+ LoadDataModel2["ACCOUNT_FISCAL_POSITION"] = "account.fiscal.position";
208
+ LoadDataModel2["ACCOUNT_FISCAL_POSITION_TAX"] = "account.fiscal.position.tax";
209
+ LoadDataModel2["ACCOUNT_TAX"] = "account.tax";
210
+ LoadDataModel2["ACCOUNT_TAX_GROUP"] = "account.tax.group";
211
+ LoadDataModel2["DECIMAL_PRECISION"] = "decimal.precision";
212
+ LoadDataModel2["IR_MODULE_MODULE"] = "ir.module.module";
213
+ LoadDataModel2["IR_UI_VIEW"] = "ir.ui.view";
214
+ LoadDataModel2["POS_BILL"] = "pos.bill";
215
+ LoadDataModel2["POS_CATEGORY"] = "pos.category";
216
+ LoadDataModel2["POS_CONFIG"] = "pos.config";
217
+ LoadDataModel2["POS_NOTE"] = "pos.note";
218
+ LoadDataModel2["POS_ORDER"] = "pos.order";
219
+ LoadDataModel2["POS_ORDER_LINE"] = "pos.order.line";
220
+ LoadDataModel2["POS_PACK_OPERATION_LOT"] = "pos.pack.operation.lot";
221
+ LoadDataModel2["POS_PAYMENT"] = "pos.payment";
222
+ LoadDataModel2["POS_PAYMENT_METHOD"] = "pos.payment.method";
223
+ LoadDataModel2["POS_PRINTER"] = "pos.printer";
224
+ LoadDataModel2["POS_SESSION"] = "pos.session";
225
+ LoadDataModel2["POS_PREPARATION_DISPLAY_DISPLAY"] = "pos_preparation_display.display";
226
+ LoadDataModel2["PRODUCT_ATTRIBUTE"] = "product.attribute";
227
+ LoadDataModel2["PRODUCT_ATTRIBUTE_CUSTOM_VALUE"] = "product.attribute.custom.value";
228
+ LoadDataModel2["PRODUCT_CATEGORY"] = "product.category";
229
+ LoadDataModel2["PRODUCT_COMBO"] = "product.combo";
230
+ LoadDataModel2["PRODUCT_COMBO_ITEM"] = "product.combo.item";
231
+ LoadDataModel2["PRODUCT_PACKAGING"] = "product.packaging";
232
+ LoadDataModel2["PRODUCT_PRICELIST"] = "product.pricelist";
233
+ LoadDataModel2["PRODUCT_PRICELIST_ITEM"] = "product.pricelist.item";
234
+ LoadDataModel2["PRODUCT_PRODUCT"] = "product.product";
235
+ LoadDataModel2["PRODUCT_TAG"] = "product.tag";
236
+ LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_LINE"] = "product.template.attribute.line";
237
+ LoadDataModel2["PRODUCT_TEMPLATE_ATTRIBUTE_VALUE"] = "product.template.attribute.value";
238
+ LoadDataModel2["RES_COMPANY"] = "res.company";
239
+ LoadDataModel2["RES_COUNTRY"] = "res.country";
240
+ LoadDataModel2["RES_COUNTRY_STATE"] = "res.country.state";
241
+ LoadDataModel2["RES_CURRENCY"] = "res.currency";
242
+ LoadDataModel2["RES_LANG"] = "res.lang";
243
+ LoadDataModel2["RES_PARTNER"] = "res.partner";
244
+ LoadDataModel2["RES_USERS"] = "res.users";
245
+ LoadDataModel2["STOCK_PICKING_TYPE"] = "stock.picking.type";
246
+ LoadDataModel2["UOM_CATEGORY"] = "uom.category";
247
+ LoadDataModel2["UOM_UOM"] = "uom.uom";
248
+ LoadDataModel2["LOYALTY_PROGRAM"] = "loyalty.program";
249
+ LoadDataModel2["LOYALTY_RULE"] = "loyalty.rule";
250
+ LoadDataModel2["RESTAURANT_TABLE"] = "restaurant.table";
251
+ LoadDataModel2["RESTAURANT_FLOOR"] = "restaurant.floor";
252
+ LoadDataModel2["POS_MAKE_PAYMENT"] = "pos.make.payment";
253
+ return LoadDataModel2;
254
+ })(LoadDataModel || {});
255
+
204
256
  // src/constants/widget/widget-avatar-constant.ts
205
257
  var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
206
258
  WIDGETAVATAR2["many2one_avatar_user"] = "many2one_avatar_user";
@@ -2351,13 +2403,6 @@ function cleanObject(obj) {
2351
2403
  }
2352
2404
  return result;
2353
2405
  }
2354
- var extractIdFromDomain = (domain) => {
2355
- if (!domain || !Array.isArray(domain)) return null;
2356
- const idCond = domain.find(
2357
- ([field, operator]) => field === "id" && operator === "="
2358
- );
2359
- return idCond ? Number(idCond[2]) : null;
2360
- };
2361
2406
 
2362
2407
  // src/provider/react-query-provider.tsx
2363
2408
  var import_react2 = require("react");
@@ -2410,7 +2455,7 @@ var initialState2 = {
2410
2455
  lang: "vi_VN",
2411
2456
  tz: "Asia/Saigon"
2412
2457
  },
2413
- isLocalMode: false
2458
+ isSupaMode: false
2414
2459
  };
2415
2460
  var envSlice = (0, import_toolkit2.createSlice)({
2416
2461
  name: "env",
@@ -3025,10 +3070,25 @@ var ServiceContext = (0, import_react5.createContext)(null);
3025
3070
  var import_react6 = require("react");
3026
3071
  var import_jsx_runtime7 = require("react/jsx-runtime");
3027
3072
 
3073
+ // src/provider/supabase-provider.tsx
3074
+ var import_react7 = require("react");
3075
+ var import_supabase_js = require("@supabase/supabase-js");
3076
+ var import_jsx_runtime8 = require("react/jsx-runtime");
3077
+ var SupabaseContext = (0, import_react7.createContext)(null);
3078
+ var useSupabase = () => {
3079
+ const context = (0, import_react7.useContext)(SupabaseContext);
3080
+ if (!context) {
3081
+ throw new Error(
3082
+ "useSupabase must be used within a SupabaseProvider or check your env config"
3083
+ );
3084
+ }
3085
+ return context;
3086
+ };
3087
+
3028
3088
  // src/services/action-service/index.ts
3029
3089
  function useActionService() {
3030
3090
  const { env } = useEnv();
3031
- const loadAction = (0, import_react7.useCallback)(
3091
+ const loadAction = (0, import_react8.useCallback)(
3032
3092
  async ({
3033
3093
  idAction,
3034
3094
  context,
@@ -3052,7 +3112,7 @@ function useActionService() {
3052
3112
  },
3053
3113
  [env]
3054
3114
  );
3055
- const callButton = (0, import_react7.useCallback)(
3115
+ const callButton = (0, import_react8.useCallback)(
3056
3116
  async ({
3057
3117
  model,
3058
3118
  ids = [],
@@ -3086,7 +3146,7 @@ function useActionService() {
3086
3146
  },
3087
3147
  [env]
3088
3148
  );
3089
- const removeRows = (0, import_react7.useCallback)(
3149
+ const removeRows = (0, import_react8.useCallback)(
3090
3150
  async ({
3091
3151
  model,
3092
3152
  ids,
@@ -3112,7 +3172,7 @@ function useActionService() {
3112
3172
  },
3113
3173
  [env]
3114
3174
  );
3115
- const duplicateRecord = (0, import_react7.useCallback)(
3175
+ const duplicateRecord = (0, import_react8.useCallback)(
3116
3176
  async ({
3117
3177
  model,
3118
3178
  id,
@@ -3138,7 +3198,7 @@ function useActionService() {
3138
3198
  },
3139
3199
  [env]
3140
3200
  );
3141
- const getPrintReportName = (0, import_react7.useCallback)(
3201
+ const getPrintReportName = (0, import_react8.useCallback)(
3142
3202
  async ({ id }) => {
3143
3203
  const jsonData = {
3144
3204
  model: "ir.actions.report",
@@ -3156,7 +3216,7 @@ function useActionService() {
3156
3216
  },
3157
3217
  [env]
3158
3218
  );
3159
- const print = (0, import_react7.useCallback)(
3219
+ const print = (0, import_react8.useCallback)(
3160
3220
  async ({ id, report, db }) => {
3161
3221
  const jsonData = {
3162
3222
  report,
@@ -3174,7 +3234,7 @@ function useActionService() {
3174
3234
  },
3175
3235
  [env]
3176
3236
  );
3177
- const runAction = (0, import_react7.useCallback)(
3237
+ const runAction = (0, import_react8.useCallback)(
3178
3238
  async ({
3179
3239
  idAction,
3180
3240
  context,
@@ -3201,7 +3261,7 @@ function useActionService() {
3201
3261
  },
3202
3262
  [env]
3203
3263
  );
3204
- const generateSerialNumber = (0, import_react7.useCallback)(
3264
+ const generateSerialNumber = (0, import_react8.useCallback)(
3205
3265
  async ({
3206
3266
  kwargs,
3207
3267
  context,
@@ -3239,10 +3299,10 @@ function useActionService() {
3239
3299
  }
3240
3300
 
3241
3301
  // src/services/auth-service/index.ts
3242
- var import_react8 = require("react");
3302
+ var import_react9 = require("react");
3243
3303
  function useAuthService() {
3244
3304
  const { env } = useEnv();
3245
- const login = (0, import_react8.useCallback)(
3305
+ const login = (0, import_react9.useCallback)(
3246
3306
  async (body) => {
3247
3307
  const payload = Object.fromEntries(
3248
3308
  Object.entries({
@@ -3267,7 +3327,7 @@ function useAuthService() {
3267
3327
  },
3268
3328
  [env]
3269
3329
  );
3270
- const forgotPassword = (0, import_react8.useCallback)(
3330
+ const forgotPassword = (0, import_react9.useCallback)(
3271
3331
  async (email) => {
3272
3332
  const bodyData = {
3273
3333
  login: email,
@@ -3281,7 +3341,7 @@ function useAuthService() {
3281
3341
  },
3282
3342
  [env]
3283
3343
  );
3284
- const forgotPasswordSSO = (0, import_react8.useCallback)(
3344
+ const forgotPasswordSSO = (0, import_react9.useCallback)(
3285
3345
  async ({
3286
3346
  email,
3287
3347
  with_context,
@@ -3304,7 +3364,7 @@ function useAuthService() {
3304
3364
  },
3305
3365
  [env]
3306
3366
  );
3307
- const resetPassword = (0, import_react8.useCallback)(
3367
+ const resetPassword = (0, import_react9.useCallback)(
3308
3368
  async (data, token) => {
3309
3369
  const bodyData = {
3310
3370
  token,
@@ -3319,7 +3379,7 @@ function useAuthService() {
3319
3379
  },
3320
3380
  [env]
3321
3381
  );
3322
- const resetPasswordSSO = (0, import_react8.useCallback)(
3382
+ const resetPasswordSSO = (0, import_react9.useCallback)(
3323
3383
  async ({
3324
3384
  method,
3325
3385
  password,
@@ -3342,7 +3402,7 @@ function useAuthService() {
3342
3402
  },
3343
3403
  [env]
3344
3404
  );
3345
- const updatePassword = (0, import_react8.useCallback)(
3405
+ const updatePassword = (0, import_react9.useCallback)(
3346
3406
  async (data, token) => {
3347
3407
  const bodyData = {
3348
3408
  token,
@@ -3357,7 +3417,7 @@ function useAuthService() {
3357
3417
  },
3358
3418
  [env]
3359
3419
  );
3360
- const isValidToken = (0, import_react8.useCallback)(
3420
+ const isValidToken = (0, import_react9.useCallback)(
3361
3421
  async (token) => {
3362
3422
  const bodyData = {
3363
3423
  token
@@ -3370,7 +3430,7 @@ function useAuthService() {
3370
3430
  },
3371
3431
  [env]
3372
3432
  );
3373
- const isValidActionToken = (0, import_react8.useCallback)(
3433
+ const isValidActionToken = (0, import_react9.useCallback)(
3374
3434
  async (actionToken) => {
3375
3435
  const bodyData = {};
3376
3436
  return env?.requests?.post("/action-token/validate" /* VALIDATE_ACTION_TOKEN */, bodyData, {
@@ -3383,7 +3443,7 @@ function useAuthService() {
3383
3443
  },
3384
3444
  [env]
3385
3445
  );
3386
- const loginSocial = (0, import_react8.useCallback)(
3446
+ const loginSocial = (0, import_react9.useCallback)(
3387
3447
  async ({
3388
3448
  db,
3389
3449
  state,
@@ -3401,13 +3461,13 @@ function useAuthService() {
3401
3461
  },
3402
3462
  [env]
3403
3463
  );
3404
- const getProviders = (0, import_react8.useCallback)(
3464
+ const getProviders = (0, import_react9.useCallback)(
3405
3465
  async (db) => {
3406
3466
  return env?.requests?.get("/oauth/providers", { params: { db } });
3407
3467
  },
3408
3468
  [env]
3409
3469
  );
3410
- const getAccessByCode = (0, import_react8.useCallback)(
3470
+ const getAccessByCode = (0, import_react9.useCallback)(
3411
3471
  async (code) => {
3412
3472
  const data = new URLSearchParams();
3413
3473
  data.append("code", code);
@@ -3427,7 +3487,7 @@ function useAuthService() {
3427
3487
  },
3428
3488
  [env]
3429
3489
  );
3430
- const logout = (0, import_react8.useCallback)(
3490
+ const logout = (0, import_react9.useCallback)(
3431
3491
  async (service) => {
3432
3492
  return env?.requests?.post(
3433
3493
  "/logout" /* LOGOUT */,
@@ -3444,7 +3504,7 @@ function useAuthService() {
3444
3504
  },
3445
3505
  [env]
3446
3506
  );
3447
- const getTenantMapping = (0, import_react8.useCallback)(
3507
+ const getTenantMapping = (0, import_react9.useCallback)(
3448
3508
  async ({ shortName, service }) => {
3449
3509
  const bodyData = {
3450
3510
  short_name: shortName
@@ -3462,7 +3522,7 @@ function useAuthService() {
3462
3522
  },
3463
3523
  [env]
3464
3524
  );
3465
- const getToken = (0, import_react8.useCallback)(
3525
+ const getToken = (0, import_react9.useCallback)(
3466
3526
  async ({
3467
3527
  phone,
3468
3528
  name,
@@ -3506,10 +3566,10 @@ function useAuthService() {
3506
3566
  }
3507
3567
 
3508
3568
  // src/services/company-service/index.ts
3509
- var import_react9 = require("react");
3569
+ var import_react10 = require("react");
3510
3570
  function useCompanyService() {
3511
3571
  const { env } = useEnv();
3512
- const getCurrentCompany = (0, import_react9.useCallback)(
3572
+ const getCurrentCompany = (0, import_react10.useCallback)(
3513
3573
  async (service, extraHeaders) => {
3514
3574
  return await env.requests.get(
3515
3575
  "/company" /* COMPANY_PATH */,
@@ -3526,7 +3586,7 @@ function useCompanyService() {
3526
3586
  },
3527
3587
  [env]
3528
3588
  );
3529
- const getInfoCompany = (0, import_react9.useCallback)(
3589
+ const getInfoCompany = (0, import_react10.useCallback)(
3530
3590
  async (id, service) => {
3531
3591
  const jsonData = {
3532
3592
  ids: [id],
@@ -3562,10 +3622,10 @@ function useCompanyService() {
3562
3622
  }
3563
3623
 
3564
3624
  // src/services/excel-service/index.ts
3565
- var import_react10 = require("react");
3625
+ var import_react11 = require("react");
3566
3626
  function useExcelService() {
3567
3627
  const { env } = useEnv();
3568
- const uploadFileExcel = (0, import_react10.useCallback)(
3628
+ const uploadFileExcel = (0, import_react11.useCallback)(
3569
3629
  async ({
3570
3630
  formData,
3571
3631
  service,
@@ -3582,7 +3642,7 @@ function useExcelService() {
3582
3642
  },
3583
3643
  [env]
3584
3644
  );
3585
- const uploadIdFile = (0, import_react10.useCallback)(
3645
+ const uploadIdFile = (0, import_react11.useCallback)(
3586
3646
  async ({
3587
3647
  formData,
3588
3648
  service,
@@ -3599,7 +3659,7 @@ function useExcelService() {
3599
3659
  },
3600
3660
  [env]
3601
3661
  );
3602
- const parsePreview = (0, import_react10.useCallback)(
3662
+ const parsePreview = (0, import_react11.useCallback)(
3603
3663
  async ({
3604
3664
  id,
3605
3665
  selectedSheet,
@@ -3648,7 +3708,7 @@ function useExcelService() {
3648
3708
  },
3649
3709
  [env]
3650
3710
  );
3651
- const executeImport = (0, import_react10.useCallback)(
3711
+ const executeImport = (0, import_react11.useCallback)(
3652
3712
  async ({
3653
3713
  columns,
3654
3714
  fields,
@@ -3682,7 +3742,7 @@ function useExcelService() {
3682
3742
  },
3683
3743
  [env]
3684
3744
  );
3685
- const getFileExcel = (0, import_react10.useCallback)(
3745
+ const getFileExcel = (0, import_react11.useCallback)(
3686
3746
  async ({
3687
3747
  model,
3688
3748
  service,
@@ -3706,7 +3766,7 @@ function useExcelService() {
3706
3766
  },
3707
3767
  [env]
3708
3768
  );
3709
- const getFieldExport = (0, import_react10.useCallback)(
3769
+ const getFieldExport = (0, import_react11.useCallback)(
3710
3770
  async ({
3711
3771
  ids,
3712
3772
  model,
@@ -3746,7 +3806,7 @@ function useExcelService() {
3746
3806
  },
3747
3807
  [env]
3748
3808
  );
3749
- const exportExcel = (0, import_react10.useCallback)(
3809
+ const exportExcel = (0, import_react11.useCallback)(
3750
3810
  async ({
3751
3811
  model,
3752
3812
  domain,
@@ -3794,10 +3854,10 @@ function useExcelService() {
3794
3854
  }
3795
3855
 
3796
3856
  // src/services/form-service/index.ts
3797
- var import_react11 = require("react");
3857
+ var import_react12 = require("react");
3798
3858
  function useFormService() {
3799
3859
  const { env } = useEnv();
3800
- const getComment = (0, import_react11.useCallback)(
3860
+ const getComment = (0, import_react12.useCallback)(
3801
3861
  async ({ data }) => {
3802
3862
  const jsonData = {
3803
3863
  thread_id: data.thread_id,
@@ -3815,7 +3875,7 @@ function useFormService() {
3815
3875
  },
3816
3876
  [env]
3817
3877
  );
3818
- const getThreadData = (0, import_react11.useCallback)(
3878
+ const getThreadData = (0, import_react12.useCallback)(
3819
3879
  async ({
3820
3880
  data,
3821
3881
  xNode,
@@ -3842,7 +3902,7 @@ function useFormService() {
3842
3902
  },
3843
3903
  [env]
3844
3904
  );
3845
- const getThreadMessages = (0, import_react11.useCallback)(
3905
+ const getThreadMessages = (0, import_react12.useCallback)(
3846
3906
  async ({
3847
3907
  data,
3848
3908
  xNode,
@@ -3868,7 +3928,7 @@ function useFormService() {
3868
3928
  },
3869
3929
  [env]
3870
3930
  );
3871
- const sentComment = (0, import_react11.useCallback)(
3931
+ const sentComment = (0, import_react12.useCallback)(
3872
3932
  async ({ data }) => {
3873
3933
  const jsonData = {
3874
3934
  context: {
@@ -3896,7 +3956,7 @@ function useFormService() {
3896
3956
  },
3897
3957
  [env]
3898
3958
  );
3899
- const deleteComment = (0, import_react11.useCallback)(
3959
+ const deleteComment = (0, import_react12.useCallback)(
3900
3960
  async ({ data }) => {
3901
3961
  const jsonData = {
3902
3962
  attachment_ids: [],
@@ -3912,7 +3972,7 @@ function useFormService() {
3912
3972
  },
3913
3973
  [env]
3914
3974
  );
3915
- const getImage = (0, import_react11.useCallback)(
3975
+ const getImage = (0, import_react12.useCallback)(
3916
3976
  async ({ data }) => {
3917
3977
  return env.requests.get(
3918
3978
  `${"/web/image" /* IMAGE_PATH */}?filename=${data.filename}&unique=${data.checksum}&width=1920&height=300`,
@@ -3925,7 +3985,7 @@ function useFormService() {
3925
3985
  },
3926
3986
  [env]
3927
3987
  );
3928
- const uploadImage = (0, import_react11.useCallback)(
3988
+ const uploadImage = (0, import_react12.useCallback)(
3929
3989
  async ({
3930
3990
  formData,
3931
3991
  service,
@@ -3944,7 +4004,7 @@ function useFormService() {
3944
4004
  },
3945
4005
  [env]
3946
4006
  );
3947
- const uploadFile = (0, import_react11.useCallback)(
4007
+ const uploadFile = (0, import_react12.useCallback)(
3948
4008
  async ({
3949
4009
  formData,
3950
4010
  service,
@@ -3964,7 +4024,7 @@ function useFormService() {
3964
4024
  },
3965
4025
  [env]
3966
4026
  );
3967
- const getFormView = (0, import_react11.useCallback)(
4027
+ const getFormView = (0, import_react12.useCallback)(
3968
4028
  async ({ data }) => {
3969
4029
  const jsonData = {
3970
4030
  model: data.model,
@@ -3980,7 +4040,7 @@ function useFormService() {
3980
4040
  },
3981
4041
  [env]
3982
4042
  );
3983
- const changeStatus = (0, import_react11.useCallback)(
4043
+ const changeStatus = (0, import_react12.useCallback)(
3984
4044
  async ({ data }) => {
3985
4045
  const vals = {
3986
4046
  [data.name]: data.stage_id
@@ -4009,7 +4069,7 @@ function useFormService() {
4009
4069
  },
4010
4070
  [env]
4011
4071
  );
4012
- const getExternalTab = (0, import_react11.useCallback)(
4072
+ const getExternalTab = (0, import_react12.useCallback)(
4013
4073
  async ({ method, context, service, xNode }) => {
4014
4074
  return env?.requests?.post(
4015
4075
  "/call" /* CALL_PATH */,
@@ -4044,10 +4104,10 @@ function useFormService() {
4044
4104
  }
4045
4105
 
4046
4106
  // src/services/kanban-service/index.ts
4047
- var import_react12 = require("react");
4107
+ var import_react13 = require("react");
4048
4108
  function useKanbanService() {
4049
4109
  const { env } = useEnv();
4050
- const getGroups = (0, import_react12.useCallback)(
4110
+ const getGroups = (0, import_react13.useCallback)(
4051
4111
  async ({ model, width_context }) => {
4052
4112
  const jsonData = {
4053
4113
  model,
@@ -4067,7 +4127,7 @@ function useKanbanService() {
4067
4127
  },
4068
4128
  [env]
4069
4129
  );
4070
- const getProgressBar = (0, import_react12.useCallback)(
4130
+ const getProgressBar = (0, import_react13.useCallback)(
4071
4131
  async ({ field, color, model, width_context }) => {
4072
4132
  const jsonData = {
4073
4133
  model,
@@ -4097,10 +4157,10 @@ function useKanbanService() {
4097
4157
  }
4098
4158
 
4099
4159
  // src/services/model-service/index.ts
4100
- var import_react13 = require("react");
4160
+ var import_react14 = require("react");
4101
4161
  function useModelService() {
4102
4162
  const { env } = useEnv();
4103
- const getListMyBankAccount = (0, import_react13.useCallback)(
4163
+ const getListMyBankAccount = (0, import_react14.useCallback)(
4104
4164
  async ({
4105
4165
  domain,
4106
4166
  spectification,
@@ -4124,7 +4184,7 @@ function useModelService() {
4124
4184
  },
4125
4185
  [env]
4126
4186
  );
4127
- const getCurrency = (0, import_react13.useCallback)(async () => {
4187
+ const getCurrency = (0, import_react14.useCallback)(async () => {
4128
4188
  const jsonData = {
4129
4189
  model: "res.currency",
4130
4190
  method: "web_search_read",
@@ -4144,7 +4204,7 @@ function useModelService() {
4144
4204
  }
4145
4205
  });
4146
4206
  }, [env]);
4147
- const getConversionRate = (0, import_react13.useCallback)(async () => {
4207
+ const getConversionRate = (0, import_react14.useCallback)(async () => {
4148
4208
  const jsonData = {
4149
4209
  model: "res.currency",
4150
4210
  method: "web_search_read",
@@ -4170,7 +4230,7 @@ function useModelService() {
4170
4230
  }
4171
4231
  });
4172
4232
  }, [env]);
4173
- const getAll = (0, import_react13.useCallback)(
4233
+ const getAll = (0, import_react14.useCallback)(
4174
4234
  async ({
4175
4235
  data,
4176
4236
  service,
@@ -4212,7 +4272,7 @@ function useModelService() {
4212
4272
  },
4213
4273
  [env]
4214
4274
  );
4215
- const getListCalendar = (0, import_react13.useCallback)(
4275
+ const getListCalendar = (0, import_react14.useCallback)(
4216
4276
  async ({ data }) => {
4217
4277
  const jsonReadGroup = data.type == "calendar" ? data?.fields : data.fields && data.fields.length > 0 && data.groupby && data.groupby.length > 0 && data.groupby[0] ? {
4218
4278
  fields: data.fields,
@@ -4243,7 +4303,7 @@ function useModelService() {
4243
4303
  },
4244
4304
  [env]
4245
4305
  );
4246
- const getList = (0, import_react13.useCallback)(
4306
+ const getList = (0, import_react14.useCallback)(
4247
4307
  async ({
4248
4308
  model,
4249
4309
  ids = [],
@@ -4275,7 +4335,7 @@ function useModelService() {
4275
4335
  },
4276
4336
  [env]
4277
4337
  );
4278
- const getDetail = (0, import_react13.useCallback)(
4338
+ const getDetail = (0, import_react14.useCallback)(
4279
4339
  async ({
4280
4340
  ids = [],
4281
4341
  model,
@@ -4307,7 +4367,7 @@ function useModelService() {
4307
4367
  },
4308
4368
  [env]
4309
4369
  );
4310
- const save = (0, import_react13.useCallback)(
4370
+ const save = (0, import_react14.useCallback)(
4311
4371
  async ({
4312
4372
  model,
4313
4373
  ids = [],
@@ -4342,7 +4402,7 @@ function useModelService() {
4342
4402
  },
4343
4403
  [env]
4344
4404
  );
4345
- const deleteApi = (0, import_react13.useCallback)(
4405
+ const deleteApi = (0, import_react14.useCallback)(
4346
4406
  async ({ ids = [], model, service }) => {
4347
4407
  const jsonData = {
4348
4408
  model,
@@ -4362,7 +4422,7 @@ function useModelService() {
4362
4422
  },
4363
4423
  [env]
4364
4424
  );
4365
- const onChange = (0, import_react13.useCallback)(
4425
+ const onChange = (0, import_react14.useCallback)(
4366
4426
  async ({
4367
4427
  ids = [],
4368
4428
  model,
@@ -4398,7 +4458,7 @@ function useModelService() {
4398
4458
  },
4399
4459
  [env]
4400
4460
  );
4401
- const getListFieldsOnchange = (0, import_react13.useCallback)(
4461
+ const getListFieldsOnchange = (0, import_react14.useCallback)(
4402
4462
  async ({
4403
4463
  model,
4404
4464
  service,
@@ -4422,7 +4482,7 @@ function useModelService() {
4422
4482
  },
4423
4483
  [env]
4424
4484
  );
4425
- const parseORMOdoo = (0, import_react13.useCallback)((data) => {
4485
+ const parseORMOdoo = (0, import_react14.useCallback)((data) => {
4426
4486
  for (const key in data) {
4427
4487
  if (key === "display_name") {
4428
4488
  delete data[key];
@@ -4433,7 +4493,7 @@ function useModelService() {
4433
4493
  }
4434
4494
  return { ...data };
4435
4495
  }, []);
4436
- const toDataJS = (0, import_react13.useCallback)(
4496
+ const toDataJS = (0, import_react14.useCallback)(
4437
4497
  (data, viewData, model) => {
4438
4498
  for (const key in data) {
4439
4499
  if (data[key] === false) {
@@ -4491,10 +4551,10 @@ function useModelService() {
4491
4551
  }
4492
4552
 
4493
4553
  // src/services/user-service/index.ts
4494
- var import_react14 = require("react");
4554
+ var import_react15 = require("react");
4495
4555
  function useUserService() {
4496
4556
  const { env } = useEnv();
4497
- const getProfile = (0, import_react14.useCallback)(
4557
+ const getProfile = (0, import_react15.useCallback)(
4498
4558
  async (service, path, extraHeaders) => {
4499
4559
  return env?.requests?.get(
4500
4560
  path || "/userinfo" /* PROFILE_PATH */,
@@ -4511,7 +4571,7 @@ function useUserService() {
4511
4571
  },
4512
4572
  [env]
4513
4573
  );
4514
- const getUser = (0, import_react14.useCallback)(
4574
+ const getUser = (0, import_react15.useCallback)(
4515
4575
  async ({ context, id }) => {
4516
4576
  const jsonData = {
4517
4577
  model: "res.users",
@@ -4549,7 +4609,7 @@ function useUserService() {
4549
4609
  },
4550
4610
  [env]
4551
4611
  );
4552
- const switchUserLocale = (0, import_react14.useCallback)(
4612
+ const switchUserLocale = (0, import_react15.useCallback)(
4553
4613
  async ({ id, values, service }) => {
4554
4614
  const jsonData = {
4555
4615
  model: "res.users",
@@ -4577,10 +4637,10 @@ function useUserService() {
4577
4637
  }
4578
4638
 
4579
4639
  // src/services/view-service/index.ts
4580
- var import_react15 = require("react");
4640
+ var import_react16 = require("react");
4581
4641
  function useViewService() {
4582
4642
  const { env } = useEnv();
4583
- const getView = (0, import_react15.useCallback)(
4643
+ const getView = (0, import_react16.useCallback)(
4584
4644
  async ({
4585
4645
  model,
4586
4646
  views,
@@ -4620,7 +4680,7 @@ function useViewService() {
4620
4680
  },
4621
4681
  [env]
4622
4682
  );
4623
- const getMenu = (0, import_react15.useCallback)(
4683
+ const getMenu = (0, import_react16.useCallback)(
4624
4684
  async (context, specification, domain, service) => {
4625
4685
  const jsonData = {
4626
4686
  model: "ir.ui.menu" /* MENU */,
@@ -4651,7 +4711,7 @@ function useViewService() {
4651
4711
  },
4652
4712
  [env]
4653
4713
  );
4654
- const getActionDetail = (0, import_react15.useCallback)(
4714
+ const getActionDetail = (0, import_react16.useCallback)(
4655
4715
  async (aid, context) => {
4656
4716
  const jsonData = {
4657
4717
  model: "ir.actions.act_window" /* WINDOW_ACTION */,
@@ -4681,7 +4741,7 @@ function useViewService() {
4681
4741
  },
4682
4742
  [env]
4683
4743
  );
4684
- const getResequence = (0, import_react15.useCallback)(
4744
+ const getResequence = (0, import_react16.useCallback)(
4685
4745
  async ({
4686
4746
  model,
4687
4747
  ids,
@@ -4711,7 +4771,7 @@ function useViewService() {
4711
4771
  },
4712
4772
  [env]
4713
4773
  );
4714
- const getSelectionItem = (0, import_react15.useCallback)(
4774
+ const getSelectionItem = (0, import_react16.useCallback)(
4715
4775
  async ({
4716
4776
  data,
4717
4777
  service,
@@ -4748,7 +4808,7 @@ function useViewService() {
4748
4808
  },
4749
4809
  [env]
4750
4810
  );
4751
- const loadMessages = (0, import_react15.useCallback)(async () => {
4811
+ const loadMessages = (0, import_react16.useCallback)(async () => {
4752
4812
  return env.requests.post(
4753
4813
  "/load_message_failures" /* LOAD_MESSAGE */,
4754
4814
  {},
@@ -4759,14 +4819,14 @@ function useViewService() {
4759
4819
  }
4760
4820
  );
4761
4821
  }, [env]);
4762
- const getVersion = (0, import_react15.useCallback)(async () => {
4822
+ const getVersion = (0, import_react16.useCallback)(async () => {
4763
4823
  return env?.requests?.get("", {
4764
4824
  headers: {
4765
4825
  "Content-Type": "application/json"
4766
4826
  }
4767
4827
  });
4768
4828
  }, [env]);
4769
- const grantAccess = (0, import_react15.useCallback)(
4829
+ const grantAccess = (0, import_react16.useCallback)(
4770
4830
  async ({
4771
4831
  redirect_uri,
4772
4832
  state,
@@ -4793,7 +4853,7 @@ function useViewService() {
4793
4853
  },
4794
4854
  [env]
4795
4855
  );
4796
- const removeTotpSetUp = (0, import_react15.useCallback)(
4856
+ const removeTotpSetUp = (0, import_react16.useCallback)(
4797
4857
  async ({ method, token }) => {
4798
4858
  const jsonData = {
4799
4859
  method,
@@ -4814,7 +4874,7 @@ function useViewService() {
4814
4874
  },
4815
4875
  [env]
4816
4876
  );
4817
- const requestSetupTotp = (0, import_react15.useCallback)(
4877
+ const requestSetupTotp = (0, import_react16.useCallback)(
4818
4878
  async ({ method, token }) => {
4819
4879
  const jsonData = {
4820
4880
  method,
@@ -4833,7 +4893,7 @@ function useViewService() {
4833
4893
  },
4834
4894
  [env]
4835
4895
  );
4836
- const settingsWebRead2fa = (0, import_react15.useCallback)(
4896
+ const settingsWebRead2fa = (0, import_react16.useCallback)(
4837
4897
  async ({
4838
4898
  method,
4839
4899
  model,
@@ -4861,7 +4921,7 @@ function useViewService() {
4861
4921
  },
4862
4922
  [env]
4863
4923
  );
4864
- const signInSSO = (0, import_react15.useCallback)(
4924
+ const signInSSO = (0, import_react16.useCallback)(
4865
4925
  async ({
4866
4926
  redirect_uri,
4867
4927
  state,
@@ -4893,7 +4953,7 @@ function useViewService() {
4893
4953
  },
4894
4954
  [env]
4895
4955
  );
4896
- const verify2FA = (0, import_react15.useCallback)(
4956
+ const verify2FA = (0, import_react16.useCallback)(
4897
4957
  ({
4898
4958
  method,
4899
4959
  with_context,
@@ -4926,7 +4986,7 @@ function useViewService() {
4926
4986
  },
4927
4987
  [env]
4928
4988
  );
4929
- const get2FAMethods = (0, import_react15.useCallback)(
4989
+ const get2FAMethods = (0, import_react16.useCallback)(
4930
4990
  ({ method, with_context }) => {
4931
4991
  const jsonData = {
4932
4992
  method,
@@ -4945,7 +5005,7 @@ function useViewService() {
4945
5005
  },
4946
5006
  [env]
4947
5007
  );
4948
- const verifyTotp = (0, import_react15.useCallback)(
5008
+ const verifyTotp = (0, import_react16.useCallback)(
4949
5009
  ({
4950
5010
  method,
4951
5011
  action_token,
@@ -4970,7 +5030,7 @@ function useViewService() {
4970
5030
  },
4971
5031
  [env]
4972
5032
  );
4973
- const getNotifications = (0, import_react15.useCallback)(
5033
+ const getNotifications = (0, import_react16.useCallback)(
4974
5034
  async ({
4975
5035
  service,
4976
5036
  xNode,
@@ -4990,7 +5050,7 @@ function useViewService() {
4990
5050
  },
4991
5051
  [env]
4992
5052
  );
4993
- const getCountry = (0, import_react15.useCallback)(
5053
+ const getCountry = (0, import_react16.useCallback)(
4994
5054
  async ({
4995
5055
  service,
4996
5056
  xNode,
@@ -5017,7 +5077,7 @@ function useViewService() {
5017
5077
  },
5018
5078
  [env]
5019
5079
  );
5020
- const getCity = (0, import_react15.useCallback)(
5080
+ const getCity = (0, import_react16.useCallback)(
5021
5081
  async ({
5022
5082
  service,
5023
5083
  xNode,
@@ -5044,7 +5104,7 @@ function useViewService() {
5044
5104
  },
5045
5105
  [env]
5046
5106
  );
5047
- const getWard = (0, import_react15.useCallback)(
5107
+ const getWard = (0, import_react16.useCallback)(
5048
5108
  async ({
5049
5109
  service,
5050
5110
  xNode,
@@ -5069,7 +5129,7 @@ function useViewService() {
5069
5129
  },
5070
5130
  [env]
5071
5131
  );
5072
- const getPartnerTitle = (0, import_react15.useCallback)(
5132
+ const getPartnerTitle = (0, import_react16.useCallback)(
5073
5133
  async ({
5074
5134
  service,
5075
5135
  xNode,
@@ -5121,10 +5181,10 @@ function useViewService() {
5121
5181
  }
5122
5182
 
5123
5183
  // src/services/dashboard-service/index.ts
5124
- var import_react16 = require("react");
5184
+ var import_react17 = require("react");
5125
5185
  function useDashboardService() {
5126
5186
  const { env } = useEnv();
5127
- const readGroup = (0, import_react16.useCallback)(
5187
+ const readGroup = (0, import_react17.useCallback)(
5128
5188
  async ({
5129
5189
  service,
5130
5190
  xNode,
@@ -5141,7 +5201,7 @@ function useDashboardService() {
5141
5201
  },
5142
5202
  [env]
5143
5203
  );
5144
- const getDataChart = (0, import_react16.useCallback)(
5204
+ const getDataChart = (0, import_react17.useCallback)(
5145
5205
  async ({
5146
5206
  service,
5147
5207
  xNode,
@@ -5177,9 +5237,9 @@ function useDashboardService() {
5177
5237
  }
5178
5238
 
5179
5239
  // src/services/pos-service/get-a-session.ts
5180
- var import_react17 = require("react");
5240
+ var import_react18 = require("react");
5181
5241
  var getASessionService = (env) => {
5182
- const getASession = (0, import_react17.useCallback)(
5242
+ const getASession = (0, import_react18.useCallback)(
5183
5243
  async ({
5184
5244
  model,
5185
5245
  args,
@@ -5228,546 +5288,9 @@ var getASessionService = (env) => {
5228
5288
  };
5229
5289
 
5230
5290
  // src/services/pos-service/add-entity.ts
5231
- var import_react18 = require("react");
5232
-
5233
- // src/services/filesystem-service/file-service.ts
5234
- var import_filesystem = require("@capacitor/filesystem");
5235
- var fileService = {
5236
- read: async (path) => {
5237
- try {
5238
- const res = await import_filesystem.Filesystem.readFile({
5239
- path,
5240
- directory: import_filesystem.Directory.Data,
5241
- encoding: import_filesystem.Encoding.UTF8
5242
- });
5243
- if (typeof res.data === "string") return res.data;
5244
- if (res.data instanceof Blob) return await res.data.text();
5245
- return null;
5246
- } catch {
5247
- return null;
5248
- }
5249
- },
5250
- write: async (path, data) => {
5251
- await import_filesystem.Filesystem.writeFile({
5252
- path,
5253
- data,
5254
- directory: import_filesystem.Directory.Data,
5255
- encoding: import_filesystem.Encoding.UTF8,
5256
- recursive: true
5257
- });
5258
- },
5259
- writeAtomic: async (path, data) => {
5260
- const tempPath = path + ".tmp";
5261
- await import_filesystem.Filesystem.writeFile({
5262
- path: tempPath,
5263
- data,
5264
- directory: import_filesystem.Directory.Data,
5265
- encoding: import_filesystem.Encoding.UTF8,
5266
- recursive: true
5267
- });
5268
- try {
5269
- await import_filesystem.Filesystem.deleteFile({
5270
- path,
5271
- directory: import_filesystem.Directory.Data
5272
- });
5273
- } catch {
5274
- }
5275
- await import_filesystem.Filesystem.rename({
5276
- from: tempPath,
5277
- to: path,
5278
- directory: import_filesystem.Directory.Data
5279
- });
5280
- },
5281
- delete: async (path) => {
5282
- try {
5283
- await import_filesystem.Filesystem.deleteFile({
5284
- path,
5285
- directory: import_filesystem.Directory.Data
5286
- });
5287
- } catch {
5288
- }
5289
- },
5290
- exists: async (path) => {
5291
- try {
5292
- await import_filesystem.Filesystem.stat({
5293
- path,
5294
- directory: import_filesystem.Directory.Data
5295
- });
5296
- return true;
5297
- } catch {
5298
- return false;
5299
- }
5300
- },
5301
- mkdir: async (path) => {
5302
- try {
5303
- await import_filesystem.Filesystem.mkdir({
5304
- path,
5305
- directory: import_filesystem.Directory.Data,
5306
- recursive: true
5307
- });
5308
- } catch (e) {
5309
- if (!String(e?.message).includes("Exists")) {
5310
- throw e;
5311
- }
5312
- }
5313
- },
5314
- list: async (path) => {
5315
- return import_filesystem.Filesystem.readdir({
5316
- path,
5317
- directory: import_filesystem.Directory.Data
5318
- });
5319
- },
5320
- getUri: async (path) => {
5321
- return import_filesystem.Filesystem.getUri({
5322
- path,
5323
- directory: import_filesystem.Directory.Data
5324
- });
5325
- }
5326
- };
5327
-
5328
- // src/services/filesystem-service/json-worker.ts
5329
- function createWorkerBlob() {
5330
- const workerCode = `
5331
- self.addEventListener("message", async (ev) => {
5332
- const { id, cmd, payload } = ev.data;
5333
- try {
5334
- if (cmd === "parse") {
5335
- const parsed = JSON.parse(payload);
5336
- self.postMessage({ id, ok: true, result: parsed });
5337
- } else if (cmd === "stringify") {
5338
- const str = JSON.stringify(payload);
5339
- self.postMessage({ id, ok: true, result: str });
5340
- }
5341
- } catch (err) {
5342
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
5343
- }
5344
- });
5345
- `;
5346
- const blob = new Blob([workerCode], { type: "application/javascript" });
5347
- return URL.createObjectURL(blob);
5348
- }
5349
- function spawnParseWorker(raw) {
5350
- return new Promise((resolve, reject) => {
5351
- const workerUrl = createWorkerBlob();
5352
- const worker = new Worker(workerUrl);
5353
- const id = Math.random().toString(36).slice(2);
5354
- worker.onmessage = (ev) => {
5355
- const { ok, result, error } = ev.data;
5356
- if (ok) {
5357
- resolve(result);
5358
- } else {
5359
- reject(new Error(error));
5360
- }
5361
- URL.revokeObjectURL(workerUrl);
5362
- worker.terminate();
5363
- };
5364
- worker.onerror = (err) => {
5365
- reject(err);
5366
- URL.revokeObjectURL(workerUrl);
5367
- worker.terminate();
5368
- };
5369
- worker.postMessage({ id, cmd: "parse", payload: raw });
5370
- });
5371
- }
5372
- function spawnStringifyWorker(obj) {
5373
- return new Promise((resolve, reject) => {
5374
- const workerUrl = createWorkerBlob();
5375
- const worker = new Worker(workerUrl);
5376
- worker.onmessage = (ev) => {
5377
- const { ok, result, error } = ev.data;
5378
- if (ok) resolve(result);
5379
- else reject(new Error(error));
5380
- URL.revokeObjectURL(workerUrl);
5381
- worker.terminate();
5382
- };
5383
- worker.onerror = (err) => {
5384
- reject(err);
5385
- URL.revokeObjectURL(workerUrl);
5386
- worker.terminate();
5387
- };
5388
- worker.postMessage({ cmd: "stringify", payload: obj });
5389
- });
5390
- }
5391
-
5392
- // src/services/filesystem-service/manifest.ts
5393
- var MANIFEST_PATH = "pos/manifest.json";
5394
- var MANIFEST_BAK_PATH = "pos/manifest.bak.json";
5395
- async function writeManifest(manifest) {
5396
- const oldRaw = await fileService.read(MANIFEST_PATH);
5397
- if (oldRaw !== null) {
5398
- await fileService.writeAtomic(MANIFEST_BAK_PATH, oldRaw);
5399
- }
5400
- await fileService.writeAtomic(MANIFEST_PATH, JSON.stringify(manifest));
5401
- try {
5402
- await fileService.delete(MANIFEST_BAK_PATH);
5403
- } catch {
5404
- }
5405
- }
5406
-
5407
- // src/services/filesystem-service/import-snapshot.ts
5408
- var DATA_DIR = "pos";
5409
- var MODELS_DIR = `${DATA_DIR}/models`;
5410
- var MODELS_META_DIR = `${DATA_DIR}/models_meta`;
5411
- var importSnapshot = async ({ data, onProgress }) => {
5412
- onProgress?.(1, "Parsing snapshot");
5413
- const parsed = await spawnParseWorker(data);
5414
- const modelNames = Object.keys(parsed);
5415
- const total = modelNames.length;
5416
- const manifest = { version: (/* @__PURE__ */ new Date()).toISOString(), models: {} };
5417
- const TMP_PREFIX = `pos/data/tmp_import_${Date.now()}`;
5418
- await fileService.writeAtomic(`${TMP_PREFIX}/.marker`, "1");
5419
- let i = 0;
5420
- for (const model of modelNames) {
5421
- i++;
5422
- onProgress?.(
5423
- Math.round(i / total * 100),
5424
- `Processing ${model} (${i}/${total})`
5425
- );
5426
- const block = parsed[model];
5427
- const dataPart = block?.data ?? block ?? [];
5428
- const fields = block?.fields ?? [];
5429
- const relations = block?.relations ?? {};
5430
- const serialized = await spawnStringifyWorker(dataPart);
5431
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5432
- await fileService.writeAtomic(tmpModelPath, serialized);
5433
- const meta = {
5434
- fields,
5435
- relations,
5436
- count: Array.isArray(dataPart) ? dataPart.length : 0,
5437
- writtenAt: (/* @__PURE__ */ new Date()).toISOString()
5438
- };
5439
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5440
- await fileService.writeAtomic(tmpMetaPath, JSON.stringify(meta));
5441
- manifest.models[model] = {
5442
- file: `${MODELS_DIR}/${encodeURIComponent(model)}.json`,
5443
- metaFile: `${MODELS_META_DIR}/${encodeURIComponent(model)}.meta.json`,
5444
- count: meta.count,
5445
- updatedAt: meta.writtenAt
5446
- };
5447
- }
5448
- onProgress?.(95, "Committing import (moving files)");
5449
- for (const model of modelNames) {
5450
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5451
- const finalModelPath = `${MODELS_DIR}/${encodeURIComponent(model)}.json`;
5452
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5453
- const finalMetaPath = `${MODELS_META_DIR}/${encodeURIComponent(
5454
- model
5455
- )}.meta.json`;
5456
- const tmpRaw = await fileService.read(tmpModelPath);
5457
- if (tmpRaw !== null) await fileService.writeAtomic(finalModelPath, tmpRaw);
5458
- const tmpMetaRaw = await fileService.read(tmpMetaPath);
5459
- if (tmpMetaRaw !== null)
5460
- await fileService.writeAtomic(finalMetaPath, tmpMetaRaw);
5461
- onProgress?.(
5462
- 95 + Math.round(
5463
- (Object.keys(manifest.models).indexOf(model) + 1) / modelNames.length * 5
5464
- ),
5465
- `Committed ${model}`
5466
- );
5467
- }
5468
- await writeManifest(manifest);
5469
- try {
5470
- for (const model of modelNames) {
5471
- await fileService.delete(
5472
- `${TMP_PREFIX}/${encodeURIComponent(model)}.json`
5473
- );
5474
- await fileService.delete(
5475
- `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`
5476
- );
5477
- }
5478
- await fileService.delete(`${TMP_PREFIX}/.marker`);
5479
- } catch (e) {
5480
- console.log("Failed to cleanup tmp import files:", e);
5481
- }
5482
- onProgress?.(100, "Import complete");
5483
- return manifest;
5484
- };
5485
- var import_snapshot_default = importSnapshot;
5486
-
5487
- // src/services/filesystem-service/memory-cache.ts
5488
- var MemoryCache = class {
5489
- map = /* @__PURE__ */ new Map();
5490
- get(k) {
5491
- const e = this.map.get(k);
5492
- if (!e) return null;
5493
- if (e.ttl && Date.now() - e.t > e.ttl) {
5494
- this.map.delete(k);
5495
- return null;
5496
- }
5497
- return e.value;
5498
- }
5499
- set(k, v, ttl = 5 * 60 * 1e3) {
5500
- this.map.set(k, { value: v, t: Date.now(), ttl });
5501
- }
5502
- del(k) {
5503
- this.map.delete(k);
5504
- }
5505
- clear() {
5506
- this.map.clear();
5507
- }
5508
- };
5509
- var memoryCache = new MemoryCache();
5510
-
5511
- // src/services/filesystem-service/model-loader.ts
5512
- var MODELS_DIR2 = "pos/models";
5513
- var MODELS_META_DIR2 = "pos/models_meta";
5514
- async function loadModelData(modelName, includeMeta = true) {
5515
- const key = `model:${modelName}:meta:${includeMeta}`;
5516
- const cached = memoryCache.get(key);
5517
- if (cached) return cached;
5518
- const dataPath = `${MODELS_DIR2}/${encodeURIComponent(modelName)}.json`;
5519
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5520
- modelName
5521
- )}.meta.json`;
5522
- const rawData = await fileService.read(dataPath);
5523
- if (!rawData) return null;
5524
- const parsedData = await spawnParseWorker(rawData);
5525
- const data = Array.isArray(parsedData) ? parsedData : [];
5526
- if (!includeMeta) {
5527
- const result2 = { data };
5528
- memoryCache.set(key, result2, 1e3 * 60 * 60);
5529
- return result2;
5530
- }
5531
- const rawMeta = await fileService.read(metaPath);
5532
- let fields = [];
5533
- let relations = {};
5534
- if (rawMeta) {
5535
- const parsedMeta = await spawnParseWorker(rawMeta);
5536
- fields = parsedMeta?.fields ?? [];
5537
- relations = parsedMeta?.relations ?? {};
5538
- }
5539
- const result = {
5540
- data,
5541
- fields,
5542
- relations
5543
- };
5544
- memoryCache.set(key, result, 1e3 * 60 * 60);
5545
- return result;
5546
- }
5547
- async function loadData(includeMeta = true) {
5548
- try {
5549
- const listResult = await fileService.list(MODELS_DIR2);
5550
- if (!listResult || !Array.isArray(listResult.files)) {
5551
- console.log("No models found");
5552
- return {};
5553
- }
5554
- const result = {};
5555
- for (const file of listResult.files) {
5556
- if (file.type !== "file") continue;
5557
- if (!file.name.endsWith(".json")) continue;
5558
- const fileName = file.name;
5559
- const modelName = fileName.replace(/\.json$/, "");
5560
- const dataPath = `${MODELS_DIR2}/${fileName}`;
5561
- const rawData = await fileService.read(dataPath);
5562
- if (!rawData) continue;
5563
- const parsedData = await spawnParseWorker(rawData);
5564
- const data = Array.isArray(parsedData) ? parsedData : [];
5565
- if (!includeMeta) {
5566
- result[modelName] = { data };
5567
- continue;
5568
- }
5569
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5570
- modelName
5571
- )}.meta.json`;
5572
- const rawMeta = await fileService.read(metaPath);
5573
- let fields = [];
5574
- let relations = {};
5575
- if (rawMeta) {
5576
- const parsedMeta = await spawnParseWorker(rawMeta);
5577
- fields = parsedMeta?.fields ?? [];
5578
- relations = parsedMeta?.relations ?? {};
5579
- }
5580
- result[modelName] = {
5581
- data,
5582
- fields,
5583
- relations
5584
- };
5585
- }
5586
- return result;
5587
- } catch (error) {
5588
- console.error("Error loading data:", error);
5589
- throw error;
5590
- }
5591
- }
5592
-
5593
- // src/services/filesystem-service/snapshot-helper.ts
5594
- var createEmptySnapshot = () => {
5595
- return {
5596
- data: []
5597
- };
5598
- };
5599
- var generateNextId = (existingIds, startFrom = 1) => {
5600
- if (!existingIds || existingIds.length === 0) {
5601
- return startFrom;
5602
- }
5603
- const maxId = Math.max(...existingIds, startFrom - 1);
5604
- return maxId + 1;
5605
- };
5606
- var loadSnapshot = async ({
5607
- modelName
5608
- }) => {
5609
- try {
5610
- const snapshot = await loadModelData(modelName);
5611
- if (!snapshot || typeof snapshot !== "object") {
5612
- console.warn("invalid snapshot, creating new one");
5613
- return createEmptySnapshot();
5614
- }
5615
- return {
5616
- data: Array.isArray(snapshot.data) ? snapshot.data : []
5617
- };
5618
- } catch (error) {
5619
- console.error("Failed to load snapshot:", error);
5620
- return createEmptySnapshot();
5621
- }
5622
- };
5623
- var getExistingIds = (snapshot) => {
5624
- return snapshot.data.map((order) => order.id).filter((id) => typeof id === "number");
5625
- };
5626
- var saveSnapshot = async ({
5627
- snapshot,
5628
- modelName
5629
- }) => {
5630
- try {
5631
- await import_snapshot_default({
5632
- data: JSON.stringify({
5633
- [modelName]: snapshot
5634
- })
5635
- });
5636
- return true;
5637
- } catch (error) {
5638
- console.error("failed to save snapshot:", error);
5639
- return false;
5640
- }
5641
- };
5642
- var addRecordResponseHandler = ({
5643
- modelName,
5644
- id,
5645
- data
5646
- }) => {
5647
- if (modelName === "restaurant.floor" /* RESTAURANT_FLOOR */ || modelName === "res.partner" /* RES_PARTNER */) {
5648
- return [[id, ""]];
5649
- }
5650
- return data;
5651
- };
5652
-
5653
- // src/services/filesystem-service/model-repository.ts
5654
- var ModelRepository = class {
5655
- getAll = async ({ modelName }) => {
5656
- try {
5657
- const snapshot = await loadSnapshot({
5658
- modelName
5659
- });
5660
- return snapshot.data;
5661
- } catch (error) {
5662
- console.error("failed to get all records:", error);
5663
- return [];
5664
- }
5665
- };
5666
- getRecord = async ({
5667
- id,
5668
- modelName
5669
- }) => {
5670
- try {
5671
- const snapshot = await loadSnapshot({
5672
- modelName
5673
- });
5674
- return snapshot.data.find((record) => record.id === id) || null;
5675
- } catch (error) {
5676
- console.error("failed to get record:", error);
5677
- return null;
5678
- }
5679
- };
5680
- addRecord = async ({
5681
- newRecord,
5682
- modelName
5683
- }) => {
5684
- try {
5685
- const snapshot = await loadSnapshot({
5686
- modelName
5687
- });
5688
- const existingIds = getExistingIds(snapshot);
5689
- const newId = generateNextId(existingIds, snapshot.data.length);
5690
- snapshot.data.push({
5691
- ...newRecord,
5692
- id: newId
5693
- });
5694
- const saved = await saveSnapshot({
5695
- snapshot,
5696
- modelName
5697
- });
5698
- if (!saved) {
5699
- console.error("failed to add new record");
5700
- return [];
5701
- }
5702
- console.log("lib data:", snapshot.data);
5703
- const response = addRecordResponseHandler({
5704
- id: newId,
5705
- modelName,
5706
- data: snapshot.data
5707
- });
5708
- return response;
5709
- } catch (error) {
5710
- console.error("failed to add new record:", error);
5711
- return [];
5712
- }
5713
- };
5714
- updateRecord = async ({
5715
- id,
5716
- update,
5717
- modelName
5718
- }) => {
5719
- try {
5720
- const snapshot = await loadSnapshot({
5721
- modelName
5722
- });
5723
- const index = snapshot.data.findIndex((record) => record.id === id);
5724
- if (index === -1) {
5725
- console.error(`record with id ${id} not found`);
5726
- return false;
5727
- }
5728
- snapshot.data[index] = {
5729
- ...snapshot.data[index],
5730
- ...update
5731
- };
5732
- return await saveSnapshot({
5733
- snapshot,
5734
- modelName
5735
- });
5736
- } catch (error) {
5737
- console.error("error updating record:", error);
5738
- return false;
5739
- }
5740
- };
5741
- deleteRecord = async ({
5742
- id,
5743
- modelName
5744
- }) => {
5745
- try {
5746
- const snapshot = await loadSnapshot({
5747
- modelName
5748
- });
5749
- const before = snapshot.data.length;
5750
- snapshot.data = snapshot.data.filter((record) => record.id !== id);
5751
- if (snapshot.data.length === before) {
5752
- console.error(`record with id ${id} not found`);
5753
- return false;
5754
- }
5755
- return await saveSnapshot({
5756
- snapshot,
5757
- modelName
5758
- });
5759
- } catch (error) {
5760
- console.error("error deleting record:", error);
5761
- return false;
5762
- }
5763
- };
5764
- };
5765
-
5766
- // src/services/pos-service/add-entity.ts
5291
+ var import_react19 = require("react");
5767
5292
  var addEntityService = (env) => {
5768
- const isLocalMode = env?.isLocalMode;
5769
- const repo = new ModelRepository();
5770
- const addEntity = (0, import_react18.useCallback)(
5293
+ const addEntity = (0, import_react19.useCallback)(
5771
5294
  ({
5772
5295
  model,
5773
5296
  values,
@@ -5775,12 +5298,6 @@ var addEntityService = (env) => {
5775
5298
  service,
5776
5299
  isCreateEndpoint = false
5777
5300
  }) => {
5778
- if (isLocalMode) {
5779
- return repo.addRecord({
5780
- newRecord: values,
5781
- modelName: model
5782
- });
5783
- }
5784
5301
  const jsonData = {
5785
5302
  model,
5786
5303
  values
@@ -5797,7 +5314,7 @@ var addEntityService = (env) => {
5797
5314
  service
5798
5315
  );
5799
5316
  },
5800
- [env, isLocalMode]
5317
+ [env]
5801
5318
  );
5802
5319
  return {
5803
5320
  addEntity
@@ -5805,9 +5322,9 @@ var addEntityService = (env) => {
5805
5322
  };
5806
5323
 
5807
5324
  // src/services/pos-service/change-order-preparation-state.ts
5808
- var import_react19 = require("react");
5325
+ var import_react20 = require("react");
5809
5326
  var changOrderPreparationStateService = (env) => {
5810
- const changeOrderPreparationState = (0, import_react19.useCallback)(
5327
+ const changeOrderPreparationState = (0, import_react20.useCallback)(
5811
5328
  ({
5812
5329
  orderId,
5813
5330
  stageId,
@@ -5844,9 +5361,9 @@ var changOrderPreparationStateService = (env) => {
5844
5361
  };
5845
5362
 
5846
5363
  // src/services/pos-service/check-payment.ts
5847
- var import_react20 = require("react");
5364
+ var import_react21 = require("react");
5848
5365
  var checkPaymentService = (env) => {
5849
- const checkPayment = (0, import_react20.useCallback)(
5366
+ const checkPayment = (0, import_react21.useCallback)(
5850
5367
  ({
5851
5368
  model,
5852
5369
  ids,
@@ -5880,9 +5397,9 @@ var checkPaymentService = (env) => {
5880
5397
  };
5881
5398
 
5882
5399
  // src/services/pos-service/create-e-invoice.ts
5883
- var import_react21 = require("react");
5400
+ var import_react22 = require("react");
5884
5401
  var createEInvoiceService = (env) => {
5885
- const createEInvoice = (0, import_react21.useCallback)(
5402
+ const createEInvoice = (0, import_react22.useCallback)(
5886
5403
  async ({
5887
5404
  service,
5888
5405
  xNode,
@@ -5917,23 +5434,15 @@ var createEInvoiceService = (env) => {
5917
5434
  };
5918
5435
 
5919
5436
  // src/services/pos-service/create-entity.ts
5920
- var import_react22 = require("react");
5437
+ var import_react23 = require("react");
5921
5438
  var createEntityService = (env) => {
5922
- const isLocalMode = env?.isLocalMode;
5923
- const repo = new ModelRepository();
5924
- const createEntity = (0, import_react22.useCallback)(
5439
+ const createEntity = (0, import_react23.useCallback)(
5925
5440
  ({
5926
5441
  model,
5927
5442
  args,
5928
5443
  xNode,
5929
5444
  service
5930
5445
  }) => {
5931
- if (isLocalMode) {
5932
- return repo.addRecord({
5933
- newRecord: args[0],
5934
- modelName: model
5935
- });
5936
- }
5937
5446
  const jsonData = {
5938
5447
  model,
5939
5448
  method: "create" /* CREATE */,
@@ -5951,7 +5460,7 @@ var createEntityService = (env) => {
5951
5460
  service
5952
5461
  );
5953
5462
  },
5954
- [env, isLocalMode]
5463
+ [env]
5955
5464
  );
5956
5465
  return {
5957
5466
  createEntity
@@ -5959,9 +5468,9 @@ var createEntityService = (env) => {
5959
5468
  };
5960
5469
 
5961
5470
  // src/services/pos-service/create-pos-config.ts
5962
- var import_react23 = require("react");
5471
+ var import_react24 = require("react");
5963
5472
  var createPosConfigService = (env) => {
5964
- const createPosConfig = (0, import_react23.useCallback)(
5473
+ const createPosConfig = (0, import_react24.useCallback)(
5965
5474
  ({
5966
5475
  model,
5967
5476
  name,
@@ -5996,9 +5505,9 @@ var createPosConfigService = (env) => {
5996
5505
  };
5997
5506
 
5998
5507
  // src/services/pos-service/create-session.ts
5999
- var import_react24 = require("react");
5508
+ var import_react25 = require("react");
6000
5509
  var createSessionService = (env) => {
6001
- const createSession = (0, import_react24.useCallback)(
5510
+ const createSession = (0, import_react25.useCallback)(
6002
5511
  ({
6003
5512
  model,
6004
5513
  configId,
@@ -6034,11 +5543,9 @@ var createSessionService = (env) => {
6034
5543
  };
6035
5544
 
6036
5545
  // src/services/pos-service/delete-entity.ts
6037
- var import_react25 = require("react");
5546
+ var import_react26 = require("react");
6038
5547
  var deleteEntityService = (env) => {
6039
- const isLocalMode = env?.isLocalMode;
6040
- const repo = new ModelRepository();
6041
- const deleteEntity = (0, import_react25.useCallback)(
5548
+ const deleteEntity = (0, import_react26.useCallback)(
6042
5549
  ({
6043
5550
  model,
6044
5551
  ids,
@@ -6046,14 +5553,6 @@ var deleteEntityService = (env) => {
6046
5553
  service,
6047
5554
  method
6048
5555
  }) => {
6049
- if (isLocalMode) {
6050
- const id = ids[0];
6051
- if (!id) return;
6052
- return repo.deleteRecord({
6053
- modelName: model,
6054
- id
6055
- });
6056
- }
6057
5556
  const jsonData = {
6058
5557
  model,
6059
5558
  ids,
@@ -6071,7 +5570,7 @@ var deleteEntityService = (env) => {
6071
5570
  service
6072
5571
  );
6073
5572
  },
6074
- [env, isLocalMode]
5573
+ [env]
6075
5574
  );
6076
5575
  return {
6077
5576
  deleteEntity
@@ -6079,9 +5578,9 @@ var deleteEntityService = (env) => {
6079
5578
  };
6080
5579
 
6081
5580
  // src/services/pos-service/generate-payment-qr-info.ts
6082
- var import_react26 = require("react");
5581
+ var import_react27 = require("react");
6083
5582
  var generatePaymentQrInfoService = (env) => {
6084
- const generatePaymentQRInfo = (0, import_react26.useCallback)(
5583
+ const generatePaymentQRInfo = (0, import_react27.useCallback)(
6085
5584
  ({
6086
5585
  orderId,
6087
5586
  amount,
@@ -6114,9 +5613,9 @@ var generatePaymentQrInfoService = (env) => {
6114
5613
  };
6115
5614
 
6116
5615
  // src/services/pos-service/get-current-user.ts
6117
- var import_react27 = require("react");
5616
+ var import_react28 = require("react");
6118
5617
  var getCurrentUserService = (env) => {
6119
- const getCurrentUser = (0, import_react27.useCallback)(
5618
+ const getCurrentUser = (0, import_react28.useCallback)(
6120
5619
  async ({
6121
5620
  service,
6122
5621
  xNode,
@@ -6146,11 +5645,9 @@ var getCurrentUserService = (env) => {
6146
5645
  };
6147
5646
 
6148
5647
  // src/services/pos-service/get-list.ts
6149
- var import_react28 = require("react");
5648
+ var import_react29 = require("react");
6150
5649
  var getListService = (env) => {
6151
- const isLocalMode = env?.isLocalMode;
6152
- const repo = new ModelRepository();
6153
- const getList = (0, import_react28.useCallback)(
5650
+ const getList = (0, import_react29.useCallback)(
6154
5651
  async ({
6155
5652
  model,
6156
5653
  domain,
@@ -6160,12 +5657,6 @@ var getListService = (env) => {
6160
5657
  offset,
6161
5658
  limit
6162
5659
  }) => {
6163
- if (isLocalMode) {
6164
- const data = await repo.getAll({
6165
- modelName: model
6166
- });
6167
- return data;
6168
- }
6169
5660
  const jsonData = {
6170
5661
  model,
6171
5662
  method: "web_search_read" /* WEB_SEARCH_READ */,
@@ -6188,7 +5679,7 @@ var getListService = (env) => {
6188
5679
  service
6189
5680
  );
6190
5681
  },
6191
- [env, isLocalMode]
5682
+ [env]
6192
5683
  );
6193
5684
  return {
6194
5685
  getList
@@ -6196,9 +5687,9 @@ var getListService = (env) => {
6196
5687
  };
6197
5688
 
6198
5689
  // src/services/pos-service/get-order-line.ts
6199
- var import_react29 = require("react");
5690
+ var import_react30 = require("react");
6200
5691
  var getOrderLineService = (env) => {
6201
- const getOrderLine = (0, import_react29.useCallback)(
5692
+ const getOrderLine = (0, import_react30.useCallback)(
6202
5693
  ({
6203
5694
  model,
6204
5695
  ids,
@@ -6234,9 +5725,9 @@ var getOrderLineService = (env) => {
6234
5725
  };
6235
5726
 
6236
5727
  // src/services/pos-service/get-pin-code.ts
6237
- var import_react30 = require("react");
5728
+ var import_react31 = require("react");
6238
5729
  var getPinCodeService = (env) => {
6239
- const getPinCode = (0, import_react30.useCallback)(
5730
+ const getPinCode = (0, import_react31.useCallback)(
6240
5731
  ({
6241
5732
  serialNumber,
6242
5733
  xNode,
@@ -6265,9 +5756,9 @@ var getPinCodeService = (env) => {
6265
5756
  };
6266
5757
 
6267
5758
  // src/services/pos-service/get-pos.ts
6268
- var import_react31 = require("react");
5759
+ var import_react32 = require("react");
6269
5760
  var getPosService = (env) => {
6270
- const getPOS = (0, import_react31.useCallback)(
5761
+ const getPOS = (0, import_react32.useCallback)(
6271
5762
  ({
6272
5763
  model,
6273
5764
  args,
@@ -6331,9 +5822,9 @@ var getPosService = (env) => {
6331
5822
  };
6332
5823
 
6333
5824
  // src/services/pos-service/get-preparation-display-data.ts
6334
- var import_react32 = require("react");
5825
+ var import_react33 = require("react");
6335
5826
  var getPreparationDisplayDataService = (env) => {
6336
- const getPreparationDisplayData = (0, import_react32.useCallback)(
5827
+ const getPreparationDisplayData = (0, import_react33.useCallback)(
6337
5828
  ({
6338
5829
  ids,
6339
5830
  xNode,
@@ -6366,9 +5857,9 @@ var getPreparationDisplayDataService = (env) => {
6366
5857
  };
6367
5858
 
6368
5859
  // src/services/pos-service/get-product-image.ts
6369
- var import_react33 = require("react");
5860
+ var import_react34 = require("react");
6370
5861
  var getProductImageService = (env) => {
6371
- const getProductImage = (0, import_react33.useCallback)(
5862
+ const getProductImage = (0, import_react34.useCallback)(
6372
5863
  ({
6373
5864
  model,
6374
5865
  fields,
@@ -6407,9 +5898,9 @@ var getProductImageService = (env) => {
6407
5898
  };
6408
5899
 
6409
5900
  // src/services/pos-service/handle-close-session.ts
6410
- var import_react34 = require("react");
5901
+ var import_react35 = require("react");
6411
5902
  var handleCloseSessionService = (env) => {
6412
- const handleCloseSession = (0, import_react34.useCallback)(
5903
+ const handleCloseSession = (0, import_react35.useCallback)(
6413
5904
  ({
6414
5905
  model,
6415
5906
  ids,
@@ -6442,9 +5933,9 @@ var handleCloseSessionService = (env) => {
6442
5933
  };
6443
5934
 
6444
5935
  // src/services/pos-service/handle-closing-detail-session.ts
6445
- var import_react35 = require("react");
5936
+ var import_react36 = require("react");
6446
5937
  var handleClosingDetailSessionService = (env) => {
6447
- const handleClosingDetailSession = (0, import_react35.useCallback)(
5938
+ const handleClosingDetailSession = (0, import_react36.useCallback)(
6448
5939
  ({
6449
5940
  model,
6450
5941
  ids,
@@ -6479,9 +5970,9 @@ var handleClosingDetailSessionService = (env) => {
6479
5970
  };
6480
5971
 
6481
5972
  // src/services/pos-service/handle-closing-session.ts
6482
- var import_react36 = require("react");
5973
+ var import_react37 = require("react");
6483
5974
  var handleClosingSessionService = (env) => {
6484
- const handleClosingSession = (0, import_react36.useCallback)(
5975
+ const handleClosingSession = (0, import_react37.useCallback)(
6485
5976
  ({
6486
5977
  model,
6487
5978
  method,
@@ -6516,10 +6007,26 @@ var handleClosingSessionService = (env) => {
6516
6007
  };
6517
6008
 
6518
6009
  // src/services/pos-service/load-data-pos-session.ts
6519
- var import_react37 = require("react");
6010
+ var import_react38 = require("react");
6011
+ var MODEL_TO_TABLE = {
6012
+ ["account.tax" /* ACCOUNT_TAX */]: "account_taxes",
6013
+ ["res.company" /* RES_COMPANY */]: "companies",
6014
+ ["res.partner" /* RES_PARTNER */]: "customers",
6015
+ ["res.users" /* RES_USERS */]: "employees",
6016
+ ["loyalty.program" /* LOYALTY_PROGRAM */]: "loyalty_programs",
6017
+ ["loyalty.rule" /* LOYALTY_RULE */]: "loyalty_rules",
6018
+ ["pos.order.line" /* POS_ORDER_LINE */]: "order_lines",
6019
+ ["pos.order" /* POS_ORDER */]: "orders",
6020
+ ["pos.payment.method" /* POS_PAYMENT_METHOD */]: "payment_methods",
6021
+ ["pos.payment" /* POS_PAYMENT */]: "payments",
6022
+ ["product.category" /* PRODUCT_CATEGORY */]: "product_categories",
6023
+ ["product.product" /* PRODUCT_PRODUCT */]: "products",
6024
+ ["restaurant.floor" /* RESTAURANT_FLOOR */]: "restaurant_floors",
6025
+ ["restaurant.table" /* RESTAURANT_TABLE */]: "restaurant_tables"
6026
+ };
6520
6027
  var loadDataPosSessionService = (env) => {
6521
- const isLocalMode = env?.isLocalMode;
6522
- const loadDataPosSession = (0, import_react37.useCallback)(
6028
+ const supabase = useSupabase();
6029
+ const loadDataPosSession = (0, import_react38.useCallback)(
6523
6030
  async ({
6524
6031
  model,
6525
6032
  ids,
@@ -6529,10 +6036,6 @@ var loadDataPosSessionService = (env) => {
6529
6036
  modelsToLoad = [],
6530
6037
  searchParams
6531
6038
  }) => {
6532
- if (isLocalMode) {
6533
- const data = await loadData();
6534
- return data;
6535
- }
6536
6039
  const jsonData = {
6537
6040
  model,
6538
6041
  method: "load_data" /* LOAD_DATA */,
@@ -6559,17 +6062,66 @@ var loadDataPosSessionService = (env) => {
6559
6062
  service
6560
6063
  );
6561
6064
  },
6562
- [env, isLocalMode]
6065
+ [env]
6563
6066
  );
6067
+ const loadDataPosSessionSupabase = (0, import_react38.useCallback)(async () => {
6068
+ try {
6069
+ const allModels = Object.values(LoadDataModel);
6070
+ const promises = allModels.map(async (modelName) => {
6071
+ const tableName = MODEL_TO_TABLE[modelName];
6072
+ if (!tableName) {
6073
+ return {
6074
+ modelName,
6075
+ data: [],
6076
+ fields: {},
6077
+ relations: {}
6078
+ };
6079
+ }
6080
+ const { data, error } = await supabase.from(tableName).select("*");
6081
+ if (error) {
6082
+ console.error(`Error loading ${modelName}:`, error);
6083
+ return {
6084
+ modelName,
6085
+ data: [],
6086
+ fields: {},
6087
+ relations: {}
6088
+ };
6089
+ }
6090
+ return {
6091
+ modelName,
6092
+ data: data || [],
6093
+ fields: {},
6094
+ relations: {}
6095
+ };
6096
+ });
6097
+ const results = await Promise.all(promises);
6098
+ const response = results.reduce(
6099
+ (acc, { modelName, data, fields, relations }) => {
6100
+ acc[modelName] = {
6101
+ data,
6102
+ fields,
6103
+ relations
6104
+ };
6105
+ return acc;
6106
+ },
6107
+ {}
6108
+ );
6109
+ return response;
6110
+ } catch (error) {
6111
+ console.error("Error loading data from Supabase:", error);
6112
+ return {};
6113
+ }
6114
+ }, [supabase]);
6564
6115
  return {
6565
- loadDataPosSession
6116
+ loadDataPosSession,
6117
+ loadDataPosSessionSupabase
6566
6118
  };
6567
6119
  };
6568
6120
 
6569
6121
  // src/services/pos-service/manage-onchange.ts
6570
- var import_react38 = require("react");
6122
+ var import_react39 = require("react");
6571
6123
  var manageOnchangeService = (env) => {
6572
- const manageOnChange = (0, import_react38.useCallback)(
6124
+ const manageOnChange = (0, import_react39.useCallback)(
6573
6125
  ({
6574
6126
  model,
6575
6127
  ids,
@@ -6603,9 +6155,9 @@ var manageOnchangeService = (env) => {
6603
6155
  };
6604
6156
 
6605
6157
  // src/services/pos-service/manage-session.ts
6606
- var import_react39 = require("react");
6158
+ var import_react40 = require("react");
6607
6159
  var manageSessionService = (env) => {
6608
- const manageSession = (0, import_react39.useCallback)(
6160
+ const manageSession = (0, import_react40.useCallback)(
6609
6161
  ({
6610
6162
  model,
6611
6163
  method,
@@ -6642,9 +6194,9 @@ var manageSessionService = (env) => {
6642
6194
  };
6643
6195
 
6644
6196
  // src/services/pos-service/process-order.ts
6645
- var import_react40 = require("react");
6197
+ var import_react41 = require("react");
6646
6198
  var processOrderService = (env) => {
6647
- const processOrder = (0, import_react40.useCallback)(
6199
+ const processOrder = (0, import_react41.useCallback)(
6648
6200
  ({
6649
6201
  orderId,
6650
6202
  xNode,
@@ -6677,9 +6229,9 @@ var processOrderService = (env) => {
6677
6229
  };
6678
6230
 
6679
6231
  // src/services/pos-service/save-pin-code.ts
6680
- var import_react41 = require("react");
6232
+ var import_react42 = require("react");
6681
6233
  var savePinCodeService = (env) => {
6682
- const savePinCode = (0, import_react41.useCallback)(
6234
+ const savePinCode = (0, import_react42.useCallback)(
6683
6235
  ({
6684
6236
  serialNumber,
6685
6237
  pinCode,
@@ -6710,9 +6262,9 @@ var savePinCodeService = (env) => {
6710
6262
  };
6711
6263
 
6712
6264
  // src/services/pos-service/search-journal.ts
6713
- var import_react42 = require("react");
6265
+ var import_react43 = require("react");
6714
6266
  var searchJournalService = (env) => {
6715
- const searchJournal = (0, import_react42.useCallback)(
6267
+ const searchJournal = (0, import_react43.useCallback)(
6716
6268
  ({
6717
6269
  model,
6718
6270
  method,
@@ -6747,9 +6299,9 @@ var searchJournalService = (env) => {
6747
6299
  };
6748
6300
 
6749
6301
  // src/services/pos-service/update-closed-session.ts
6750
- var import_react43 = require("react");
6302
+ var import_react44 = require("react");
6751
6303
  var updateClosedSessionService = (env) => {
6752
- const updateClosedSession = (0, import_react43.useCallback)(
6304
+ const updateClosedSession = (0, import_react44.useCallback)(
6753
6305
  ({
6754
6306
  model,
6755
6307
  domain,
@@ -6782,11 +6334,9 @@ var updateClosedSessionService = (env) => {
6782
6334
  };
6783
6335
 
6784
6336
  // src/services/pos-service/update-entity.ts
6785
- var import_react44 = require("react");
6337
+ var import_react45 = require("react");
6786
6338
  var updateEntityService = (env) => {
6787
- const isLocalMode = env?.isLocalMode;
6788
- const repo = new ModelRepository();
6789
- const updateEntity = (0, import_react44.useCallback)(
6339
+ const updateEntity = (0, import_react45.useCallback)(
6790
6340
  ({
6791
6341
  model,
6792
6342
  domain,
@@ -6795,15 +6345,6 @@ var updateEntityService = (env) => {
6795
6345
  xNode,
6796
6346
  service
6797
6347
  }) => {
6798
- if (isLocalMode) {
6799
- const id = extractIdFromDomain(domain);
6800
- if (!id) return;
6801
- return repo.updateRecord({
6802
- update: values,
6803
- modelName: model,
6804
- id
6805
- });
6806
- }
6807
6348
  const jsonData = {
6808
6349
  model,
6809
6350
  domain,
@@ -6821,7 +6362,7 @@ var updateEntityService = (env) => {
6821
6362
  service
6822
6363
  );
6823
6364
  },
6824
- [env, isLocalMode]
6365
+ [env]
6825
6366
  );
6826
6367
  return {
6827
6368
  updateEntity
@@ -6829,9 +6370,9 @@ var updateEntityService = (env) => {
6829
6370
  };
6830
6371
 
6831
6372
  // src/services/pos-service/update-order-status.ts
6832
- var import_react45 = require("react");
6373
+ var import_react46 = require("react");
6833
6374
  var updateOrderStatusService = (env) => {
6834
- const updateOrderStatus = (0, import_react45.useCallback)(
6375
+ const updateOrderStatus = (0, import_react46.useCallback)(
6835
6376
  ({
6836
6377
  orderId,
6837
6378
  state,
@@ -6861,6 +6402,49 @@ var updateOrderStatusService = (env) => {
6861
6402
  };
6862
6403
  };
6863
6404
 
6405
+ // src/services/pos-service/complete-current-stage.ts
6406
+ var import_react47 = require("react");
6407
+ var completeCurrentStageService = (env) => {
6408
+ const completeCurrentStage = (0, import_react47.useCallback)(
6409
+ ({
6410
+ ids,
6411
+ withContext,
6412
+ xNode,
6413
+ service,
6414
+ requestStageId
6415
+ }) => {
6416
+ const jsonData = {
6417
+ model: "pos_preparation_display.orderline" /* POS_PREPARATION_ORDER_LINE */,
6418
+ method: "complete_current_stage" /* COMPLETE_CURRENT_STAGE */,
6419
+ ids,
6420
+ kwargs: {
6421
+ request_stage_id: requestStageId
6422
+ },
6423
+ with_context: withContext || {
6424
+ lang: "vi_VN",
6425
+ tz: "Asia/Ho_Chi_Minh",
6426
+ uid: 2
6427
+ }
6428
+ };
6429
+ return env?.requests.post(
6430
+ "/call" /* CALL_PATH */,
6431
+ jsonData,
6432
+ {
6433
+ headers: {
6434
+ "Content-Type": "application/json",
6435
+ ...xNode ? { "X-Node": xNode } : {}
6436
+ }
6437
+ },
6438
+ service
6439
+ );
6440
+ },
6441
+ [env]
6442
+ );
6443
+ return {
6444
+ completeCurrentStage
6445
+ };
6446
+ };
6447
+
6864
6448
  // src/services/pos-service/index.ts
6865
6449
  var serviceFactories = [
6866
6450
  addEntityService,
@@ -6891,7 +6475,8 @@ var serviceFactories = [
6891
6475
  searchJournalService,
6892
6476
  updateClosedSessionService,
6893
6477
  updateEntityService,
6894
- updateOrderStatusService
6478
+ updateOrderStatusService,
6479
+ completeCurrentStageService
6895
6480
  ];
6896
6481
  var usePosService = () => {
6897
6482
  const { env } = useEnv();
@@ -6903,50 +6488,6 @@ var usePosService = () => {
6903
6488
  return service;
6904
6489
  };
6905
6490
 
6906
- // src/services/filesystem-service/init-snapshot.ts
6907
- var isSnapshotReady = async () => {
6908
- try {
6909
- const raw = await fileService.read("pos/manifest.json");
6910
- if (!raw) return false;
6911
- const manifest = JSON.parse(raw);
6912
- if (!manifest.models || typeof manifest.models !== "object") {
6913
- return false;
6914
- }
6915
- const modelEntries = Object.values(manifest.models);
6916
- if (modelEntries.length === 0) return false;
6917
- const firstModel = modelEntries[0];
6918
- if (!firstModel.file) return false;
6919
- const modelExists = await fileService.exists(firstModel.file);
6920
- return modelExists;
6921
- } catch {
6922
- return false;
6923
- }
6924
- };
6925
- async function initSnapshot(onProgress) {
6926
- const ready = await isSnapshotReady();
6927
- if (ready) {
6928
- console.log("skip initialization.");
6929
- return;
6930
- }
6931
- console.log("initializing from data.json...");
6932
- const jsonData = await fetch("/data.json").then((r) => r.text());
6933
- if (!jsonData) {
6934
- console.error("cannot load data.json");
6935
- return;
6936
- }
6937
- await import_snapshot_default({
6938
- data: jsonData,
6939
- onProgress
6940
- });
6941
- }
6942
-
6943
- // src/services/filesystem-service/index.ts
6944
- var useFileSystemService = () => {
6945
- return {
6946
- initSnapshot
6947
- };
6948
- };
6949
-
6950
6491
  // src/hooks/auth/use-forgot-password.ts
6951
6492
  var useForgotPassword = () => {
6952
6493
  const { forgotPassword } = useAuthService();
@@ -7816,9 +7357,9 @@ var BaseModel = class {
7816
7357
  };
7817
7358
 
7818
7359
  // src/hooks/model/use-model.ts
7819
- var import_react46 = require("react");
7360
+ var import_react48 = require("react");
7820
7361
  var useModel = () => {
7821
- const initModel = (0, import_react46.useCallback)((modelData) => {
7362
+ const initModel = (0, import_react48.useCallback)((modelData) => {
7822
7363
  switch (modelData?.name) {
7823
7364
  default:
7824
7365
  return new BaseModel(modelData);
@@ -8835,8 +8376,9 @@ var use_handle_closing_session_default = useHandleClosingSession;
8835
8376
  var import_react_query104 = require("@tanstack/react-query");
8836
8377
  var useLoadDataPosSession = () => {
8837
8378
  const pos = usePosService();
8379
+ const { env } = useEnv();
8838
8380
  return (0, import_react_query104.useMutation)({
8839
- mutationFn: pos.loadDataPosSession
8381
+ mutationFn: env.isSupaMode ? pos.loadDataPosSessionSupabase : pos.loadDataPosSession
8840
8382
  });
8841
8383
  };
8842
8384
  var use_load_data_pos_session_default = useLoadDataPosSession;
@@ -8921,15 +8463,15 @@ var useUpdateOrderStatus = () => {
8921
8463
  };
8922
8464
  var use_update_order_status_default = useUpdateOrderStatus;
8923
8465
 
8924
- // src/hooks/pos/use-init-snapshot.ts
8466
+ // src/hooks/pos/use-complete-current-stage.ts
8925
8467
  var import_react_query113 = require("@tanstack/react-query");
8926
- var useInitSnapshot = () => {
8927
- const fileSystem = useFileSystemService();
8468
+ var useCompleteCurrentStage = () => {
8469
+ const pos = usePosService();
8928
8470
  return (0, import_react_query113.useMutation)({
8929
- mutationFn: fileSystem.initSnapshot
8471
+ mutationFn: pos.completeCurrentStage
8930
8472
  });
8931
8473
  };
8932
- var use_init_snapshot_default = useInitSnapshot;
8474
+ var use_complete_current_stage_default = useCompleteCurrentStage;
8933
8475
  // Annotate the CommonJS export names for ESM import in node:
8934
8476
  0 && (module.exports = {
8935
8477
  useAddEntity,
@@ -8937,6 +8479,7 @@ var use_init_snapshot_default = useInitSnapshot;
8937
8479
  useChangeOrderPreparationState,
8938
8480
  useChangeStatus,
8939
8481
  useCheckPayment,
8482
+ useCompleteCurrentStage,
8940
8483
  useCreateEInvoice,
8941
8484
  useCreateEntity,
8942
8485
  useCreatePosConfig,
@@ -9004,7 +8547,6 @@ var use_init_snapshot_default = useInitSnapshot;
9004
8547
  useHandleCloseSession,
9005
8548
  useHandleClosingDetailSession,
9006
8549
  useHandleClosingSession,
9007
- useInitSnapshot,
9008
8550
  useIsValidToken,
9009
8551
  useLoadAction,
9010
8552
  useLoadDataPosSession,