@fctc/interface-logic 4.4.0 → 4.4.2

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
@@ -103,7 +103,6 @@ __export(hooks_exports, {
103
103
  useHandleCloseSession: () => use_handle_close_session_default,
104
104
  useHandleClosingDetailSession: () => use_handle_closing_detail_session_default,
105
105
  useHandleClosingSession: () => use_handle_closing_session_default,
106
- useInitSnapshot: () => use_init_snapshot_default,
107
106
  useIsValidToken: () => use_isvalid_token_default,
108
107
  useLoadAction: () => use_load_action_default,
109
108
  useLoadDataPosSession: () => use_load_data_pos_session_default,
@@ -151,7 +150,7 @@ module.exports = __toCommonJS(hooks_exports);
151
150
  var import_react_query3 = require("@tanstack/react-query");
152
151
 
153
152
  // src/services/action-service/index.ts
154
- var import_react7 = require("react");
153
+ var import_react8 = require("react");
155
154
 
156
155
  // src/constants/api/uri-constant.ts
157
156
  var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
@@ -202,6 +201,58 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
202
201
  // src/utils/format.ts
203
202
  var import_moment = __toESM(require("moment"));
204
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
+
205
256
  // src/constants/widget/widget-avatar-constant.ts
206
257
  var WIDGETAVATAR = /* @__PURE__ */ ((WIDGETAVATAR2) => {
207
258
  WIDGETAVATAR2["many2one_avatar_user"] = "many2one_avatar_user";
@@ -2352,13 +2403,6 @@ function cleanObject(obj) {
2352
2403
  }
2353
2404
  return result;
2354
2405
  }
2355
- var extractIdFromDomain = (domain) => {
2356
- if (!domain || !Array.isArray(domain)) return null;
2357
- const idCond = domain.find(
2358
- ([field, operator]) => field === "id" && operator === "="
2359
- );
2360
- return idCond ? Number(idCond[2]) : null;
2361
- };
2362
2406
 
2363
2407
  // src/provider/react-query-provider.tsx
2364
2408
  var import_react2 = require("react");
@@ -2411,7 +2455,7 @@ var initialState2 = {
2411
2455
  lang: "vi_VN",
2412
2456
  tz: "Asia/Saigon"
2413
2457
  },
2414
- isLocalMode: false
2458
+ isSupaMode: false
2415
2459
  };
2416
2460
  var envSlice = (0, import_toolkit2.createSlice)({
2417
2461
  name: "env",
@@ -3026,10 +3070,19 @@ var ServiceContext = (0, import_react5.createContext)(null);
3026
3070
  var import_react6 = require("react");
3027
3071
  var import_jsx_runtime7 = require("react/jsx-runtime");
3028
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 useSupabaseOptional = () => {
3079
+ return (0, import_react7.useContext)(SupabaseContext);
3080
+ };
3081
+
3029
3082
  // src/services/action-service/index.ts
3030
3083
  function useActionService() {
3031
3084
  const { env } = useEnv();
3032
- const loadAction = (0, import_react7.useCallback)(
3085
+ const loadAction = (0, import_react8.useCallback)(
3033
3086
  async ({
3034
3087
  idAction,
3035
3088
  context,
@@ -3053,7 +3106,7 @@ function useActionService() {
3053
3106
  },
3054
3107
  [env]
3055
3108
  );
3056
- const callButton = (0, import_react7.useCallback)(
3109
+ const callButton = (0, import_react8.useCallback)(
3057
3110
  async ({
3058
3111
  model,
3059
3112
  ids = [],
@@ -3087,7 +3140,7 @@ function useActionService() {
3087
3140
  },
3088
3141
  [env]
3089
3142
  );
3090
- const removeRows = (0, import_react7.useCallback)(
3143
+ const removeRows = (0, import_react8.useCallback)(
3091
3144
  async ({
3092
3145
  model,
3093
3146
  ids,
@@ -3113,7 +3166,7 @@ function useActionService() {
3113
3166
  },
3114
3167
  [env]
3115
3168
  );
3116
- const duplicateRecord = (0, import_react7.useCallback)(
3169
+ const duplicateRecord = (0, import_react8.useCallback)(
3117
3170
  async ({
3118
3171
  model,
3119
3172
  id,
@@ -3139,7 +3192,7 @@ function useActionService() {
3139
3192
  },
3140
3193
  [env]
3141
3194
  );
3142
- const getPrintReportName = (0, import_react7.useCallback)(
3195
+ const getPrintReportName = (0, import_react8.useCallback)(
3143
3196
  async ({ id }) => {
3144
3197
  const jsonData = {
3145
3198
  model: "ir.actions.report",
@@ -3157,7 +3210,7 @@ function useActionService() {
3157
3210
  },
3158
3211
  [env]
3159
3212
  );
3160
- const print = (0, import_react7.useCallback)(
3213
+ const print = (0, import_react8.useCallback)(
3161
3214
  async ({ id, report, db }) => {
3162
3215
  const jsonData = {
3163
3216
  report,
@@ -3175,7 +3228,7 @@ function useActionService() {
3175
3228
  },
3176
3229
  [env]
3177
3230
  );
3178
- const runAction = (0, import_react7.useCallback)(
3231
+ const runAction = (0, import_react8.useCallback)(
3179
3232
  async ({
3180
3233
  idAction,
3181
3234
  context,
@@ -3202,7 +3255,7 @@ function useActionService() {
3202
3255
  },
3203
3256
  [env]
3204
3257
  );
3205
- const generateSerialNumber = (0, import_react7.useCallback)(
3258
+ const generateSerialNumber = (0, import_react8.useCallback)(
3206
3259
  async ({
3207
3260
  kwargs,
3208
3261
  context,
@@ -3240,10 +3293,10 @@ function useActionService() {
3240
3293
  }
3241
3294
 
3242
3295
  // src/services/auth-service/index.ts
3243
- var import_react8 = require("react");
3296
+ var import_react9 = require("react");
3244
3297
  function useAuthService() {
3245
3298
  const { env } = useEnv();
3246
- const login = (0, import_react8.useCallback)(
3299
+ const login = (0, import_react9.useCallback)(
3247
3300
  async (body) => {
3248
3301
  const payload = Object.fromEntries(
3249
3302
  Object.entries({
@@ -3268,7 +3321,7 @@ function useAuthService() {
3268
3321
  },
3269
3322
  [env]
3270
3323
  );
3271
- const forgotPassword = (0, import_react8.useCallback)(
3324
+ const forgotPassword = (0, import_react9.useCallback)(
3272
3325
  async (email) => {
3273
3326
  const bodyData = {
3274
3327
  login: email,
@@ -3282,7 +3335,7 @@ function useAuthService() {
3282
3335
  },
3283
3336
  [env]
3284
3337
  );
3285
- const forgotPasswordSSO = (0, import_react8.useCallback)(
3338
+ const forgotPasswordSSO = (0, import_react9.useCallback)(
3286
3339
  async ({
3287
3340
  email,
3288
3341
  with_context,
@@ -3305,7 +3358,7 @@ function useAuthService() {
3305
3358
  },
3306
3359
  [env]
3307
3360
  );
3308
- const resetPassword = (0, import_react8.useCallback)(
3361
+ const resetPassword = (0, import_react9.useCallback)(
3309
3362
  async (data, token) => {
3310
3363
  const bodyData = {
3311
3364
  token,
@@ -3320,7 +3373,7 @@ function useAuthService() {
3320
3373
  },
3321
3374
  [env]
3322
3375
  );
3323
- const resetPasswordSSO = (0, import_react8.useCallback)(
3376
+ const resetPasswordSSO = (0, import_react9.useCallback)(
3324
3377
  async ({
3325
3378
  method,
3326
3379
  password,
@@ -3343,7 +3396,7 @@ function useAuthService() {
3343
3396
  },
3344
3397
  [env]
3345
3398
  );
3346
- const updatePassword = (0, import_react8.useCallback)(
3399
+ const updatePassword = (0, import_react9.useCallback)(
3347
3400
  async (data, token) => {
3348
3401
  const bodyData = {
3349
3402
  token,
@@ -3358,7 +3411,7 @@ function useAuthService() {
3358
3411
  },
3359
3412
  [env]
3360
3413
  );
3361
- const isValidToken = (0, import_react8.useCallback)(
3414
+ const isValidToken = (0, import_react9.useCallback)(
3362
3415
  async (token) => {
3363
3416
  const bodyData = {
3364
3417
  token
@@ -3371,7 +3424,7 @@ function useAuthService() {
3371
3424
  },
3372
3425
  [env]
3373
3426
  );
3374
- const isValidActionToken = (0, import_react8.useCallback)(
3427
+ const isValidActionToken = (0, import_react9.useCallback)(
3375
3428
  async (actionToken) => {
3376
3429
  const bodyData = {};
3377
3430
  return env?.requests?.post("/action-token/validate" /* VALIDATE_ACTION_TOKEN */, bodyData, {
@@ -3384,7 +3437,7 @@ function useAuthService() {
3384
3437
  },
3385
3438
  [env]
3386
3439
  );
3387
- const loginSocial = (0, import_react8.useCallback)(
3440
+ const loginSocial = (0, import_react9.useCallback)(
3388
3441
  async ({
3389
3442
  db,
3390
3443
  state,
@@ -3402,13 +3455,13 @@ function useAuthService() {
3402
3455
  },
3403
3456
  [env]
3404
3457
  );
3405
- const getProviders = (0, import_react8.useCallback)(
3458
+ const getProviders = (0, import_react9.useCallback)(
3406
3459
  async (db) => {
3407
3460
  return env?.requests?.get("/oauth/providers", { params: { db } });
3408
3461
  },
3409
3462
  [env]
3410
3463
  );
3411
- const getAccessByCode = (0, import_react8.useCallback)(
3464
+ const getAccessByCode = (0, import_react9.useCallback)(
3412
3465
  async (code) => {
3413
3466
  const data = new URLSearchParams();
3414
3467
  data.append("code", code);
@@ -3428,7 +3481,7 @@ function useAuthService() {
3428
3481
  },
3429
3482
  [env]
3430
3483
  );
3431
- const logout = (0, import_react8.useCallback)(
3484
+ const logout = (0, import_react9.useCallback)(
3432
3485
  async (service) => {
3433
3486
  return env?.requests?.post(
3434
3487
  "/logout" /* LOGOUT */,
@@ -3445,7 +3498,7 @@ function useAuthService() {
3445
3498
  },
3446
3499
  [env]
3447
3500
  );
3448
- const getTenantMapping = (0, import_react8.useCallback)(
3501
+ const getTenantMapping = (0, import_react9.useCallback)(
3449
3502
  async ({ shortName, service }) => {
3450
3503
  const bodyData = {
3451
3504
  short_name: shortName
@@ -3463,7 +3516,7 @@ function useAuthService() {
3463
3516
  },
3464
3517
  [env]
3465
3518
  );
3466
- const getToken = (0, import_react8.useCallback)(
3519
+ const getToken = (0, import_react9.useCallback)(
3467
3520
  async ({
3468
3521
  phone,
3469
3522
  name,
@@ -3507,10 +3560,10 @@ function useAuthService() {
3507
3560
  }
3508
3561
 
3509
3562
  // src/services/company-service/index.ts
3510
- var import_react9 = require("react");
3563
+ var import_react10 = require("react");
3511
3564
  function useCompanyService() {
3512
3565
  const { env } = useEnv();
3513
- const getCurrentCompany = (0, import_react9.useCallback)(
3566
+ const getCurrentCompany = (0, import_react10.useCallback)(
3514
3567
  async (service, extraHeaders) => {
3515
3568
  return await env.requests.get(
3516
3569
  "/company" /* COMPANY_PATH */,
@@ -3527,7 +3580,7 @@ function useCompanyService() {
3527
3580
  },
3528
3581
  [env]
3529
3582
  );
3530
- const getInfoCompany = (0, import_react9.useCallback)(
3583
+ const getInfoCompany = (0, import_react10.useCallback)(
3531
3584
  async (id, service) => {
3532
3585
  const jsonData = {
3533
3586
  ids: [id],
@@ -3563,10 +3616,10 @@ function useCompanyService() {
3563
3616
  }
3564
3617
 
3565
3618
  // src/services/excel-service/index.ts
3566
- var import_react10 = require("react");
3619
+ var import_react11 = require("react");
3567
3620
  function useExcelService() {
3568
3621
  const { env } = useEnv();
3569
- const uploadFileExcel = (0, import_react10.useCallback)(
3622
+ const uploadFileExcel = (0, import_react11.useCallback)(
3570
3623
  async ({
3571
3624
  formData,
3572
3625
  service,
@@ -3583,7 +3636,7 @@ function useExcelService() {
3583
3636
  },
3584
3637
  [env]
3585
3638
  );
3586
- const uploadIdFile = (0, import_react10.useCallback)(
3639
+ const uploadIdFile = (0, import_react11.useCallback)(
3587
3640
  async ({
3588
3641
  formData,
3589
3642
  service,
@@ -3600,7 +3653,7 @@ function useExcelService() {
3600
3653
  },
3601
3654
  [env]
3602
3655
  );
3603
- const parsePreview = (0, import_react10.useCallback)(
3656
+ const parsePreview = (0, import_react11.useCallback)(
3604
3657
  async ({
3605
3658
  id,
3606
3659
  selectedSheet,
@@ -3649,7 +3702,7 @@ function useExcelService() {
3649
3702
  },
3650
3703
  [env]
3651
3704
  );
3652
- const executeImport = (0, import_react10.useCallback)(
3705
+ const executeImport = (0, import_react11.useCallback)(
3653
3706
  async ({
3654
3707
  columns,
3655
3708
  fields,
@@ -3683,7 +3736,7 @@ function useExcelService() {
3683
3736
  },
3684
3737
  [env]
3685
3738
  );
3686
- const getFileExcel = (0, import_react10.useCallback)(
3739
+ const getFileExcel = (0, import_react11.useCallback)(
3687
3740
  async ({
3688
3741
  model,
3689
3742
  service,
@@ -3707,7 +3760,7 @@ function useExcelService() {
3707
3760
  },
3708
3761
  [env]
3709
3762
  );
3710
- const getFieldExport = (0, import_react10.useCallback)(
3763
+ const getFieldExport = (0, import_react11.useCallback)(
3711
3764
  async ({
3712
3765
  ids,
3713
3766
  model,
@@ -3747,7 +3800,7 @@ function useExcelService() {
3747
3800
  },
3748
3801
  [env]
3749
3802
  );
3750
- const exportExcel = (0, import_react10.useCallback)(
3803
+ const exportExcel = (0, import_react11.useCallback)(
3751
3804
  async ({
3752
3805
  model,
3753
3806
  domain,
@@ -3795,10 +3848,10 @@ function useExcelService() {
3795
3848
  }
3796
3849
 
3797
3850
  // src/services/form-service/index.ts
3798
- var import_react11 = require("react");
3851
+ var import_react12 = require("react");
3799
3852
  function useFormService() {
3800
3853
  const { env } = useEnv();
3801
- const getComment = (0, import_react11.useCallback)(
3854
+ const getComment = (0, import_react12.useCallback)(
3802
3855
  async ({ data }) => {
3803
3856
  const jsonData = {
3804
3857
  thread_id: data.thread_id,
@@ -3816,7 +3869,7 @@ function useFormService() {
3816
3869
  },
3817
3870
  [env]
3818
3871
  );
3819
- const getThreadData = (0, import_react11.useCallback)(
3872
+ const getThreadData = (0, import_react12.useCallback)(
3820
3873
  async ({
3821
3874
  data,
3822
3875
  xNode,
@@ -3843,7 +3896,7 @@ function useFormService() {
3843
3896
  },
3844
3897
  [env]
3845
3898
  );
3846
- const getThreadMessages = (0, import_react11.useCallback)(
3899
+ const getThreadMessages = (0, import_react12.useCallback)(
3847
3900
  async ({
3848
3901
  data,
3849
3902
  xNode,
@@ -3869,7 +3922,7 @@ function useFormService() {
3869
3922
  },
3870
3923
  [env]
3871
3924
  );
3872
- const sentComment = (0, import_react11.useCallback)(
3925
+ const sentComment = (0, import_react12.useCallback)(
3873
3926
  async ({ data }) => {
3874
3927
  const jsonData = {
3875
3928
  context: {
@@ -3897,7 +3950,7 @@ function useFormService() {
3897
3950
  },
3898
3951
  [env]
3899
3952
  );
3900
- const deleteComment = (0, import_react11.useCallback)(
3953
+ const deleteComment = (0, import_react12.useCallback)(
3901
3954
  async ({ data }) => {
3902
3955
  const jsonData = {
3903
3956
  attachment_ids: [],
@@ -3913,7 +3966,7 @@ function useFormService() {
3913
3966
  },
3914
3967
  [env]
3915
3968
  );
3916
- const getImage = (0, import_react11.useCallback)(
3969
+ const getImage = (0, import_react12.useCallback)(
3917
3970
  async ({ data }) => {
3918
3971
  return env.requests.get(
3919
3972
  `${"/web/image" /* IMAGE_PATH */}?filename=${data.filename}&unique=${data.checksum}&width=1920&height=300`,
@@ -3926,7 +3979,7 @@ function useFormService() {
3926
3979
  },
3927
3980
  [env]
3928
3981
  );
3929
- const uploadImage = (0, import_react11.useCallback)(
3982
+ const uploadImage = (0, import_react12.useCallback)(
3930
3983
  async ({
3931
3984
  formData,
3932
3985
  service,
@@ -3945,7 +3998,7 @@ function useFormService() {
3945
3998
  },
3946
3999
  [env]
3947
4000
  );
3948
- const uploadFile = (0, import_react11.useCallback)(
4001
+ const uploadFile = (0, import_react12.useCallback)(
3949
4002
  async ({
3950
4003
  formData,
3951
4004
  service,
@@ -3965,7 +4018,7 @@ function useFormService() {
3965
4018
  },
3966
4019
  [env]
3967
4020
  );
3968
- const getFormView = (0, import_react11.useCallback)(
4021
+ const getFormView = (0, import_react12.useCallback)(
3969
4022
  async ({ data }) => {
3970
4023
  const jsonData = {
3971
4024
  model: data.model,
@@ -3981,7 +4034,7 @@ function useFormService() {
3981
4034
  },
3982
4035
  [env]
3983
4036
  );
3984
- const changeStatus = (0, import_react11.useCallback)(
4037
+ const changeStatus = (0, import_react12.useCallback)(
3985
4038
  async ({ data }) => {
3986
4039
  const vals = {
3987
4040
  [data.name]: data.stage_id
@@ -4010,7 +4063,7 @@ function useFormService() {
4010
4063
  },
4011
4064
  [env]
4012
4065
  );
4013
- const getExternalTab = (0, import_react11.useCallback)(
4066
+ const getExternalTab = (0, import_react12.useCallback)(
4014
4067
  async ({ method, context, service, xNode }) => {
4015
4068
  return env?.requests?.post(
4016
4069
  "/call" /* CALL_PATH */,
@@ -4045,10 +4098,10 @@ function useFormService() {
4045
4098
  }
4046
4099
 
4047
4100
  // src/services/kanban-service/index.ts
4048
- var import_react12 = require("react");
4101
+ var import_react13 = require("react");
4049
4102
  function useKanbanService() {
4050
4103
  const { env } = useEnv();
4051
- const getGroups = (0, import_react12.useCallback)(
4104
+ const getGroups = (0, import_react13.useCallback)(
4052
4105
  async ({ model, width_context }) => {
4053
4106
  const jsonData = {
4054
4107
  model,
@@ -4068,7 +4121,7 @@ function useKanbanService() {
4068
4121
  },
4069
4122
  [env]
4070
4123
  );
4071
- const getProgressBar = (0, import_react12.useCallback)(
4124
+ const getProgressBar = (0, import_react13.useCallback)(
4072
4125
  async ({ field, color, model, width_context }) => {
4073
4126
  const jsonData = {
4074
4127
  model,
@@ -4098,10 +4151,10 @@ function useKanbanService() {
4098
4151
  }
4099
4152
 
4100
4153
  // src/services/model-service/index.ts
4101
- var import_react13 = require("react");
4154
+ var import_react14 = require("react");
4102
4155
  function useModelService() {
4103
4156
  const { env } = useEnv();
4104
- const getListMyBankAccount = (0, import_react13.useCallback)(
4157
+ const getListMyBankAccount = (0, import_react14.useCallback)(
4105
4158
  async ({
4106
4159
  domain,
4107
4160
  spectification,
@@ -4125,7 +4178,7 @@ function useModelService() {
4125
4178
  },
4126
4179
  [env]
4127
4180
  );
4128
- const getCurrency = (0, import_react13.useCallback)(async () => {
4181
+ const getCurrency = (0, import_react14.useCallback)(async () => {
4129
4182
  const jsonData = {
4130
4183
  model: "res.currency",
4131
4184
  method: "web_search_read",
@@ -4145,7 +4198,7 @@ function useModelService() {
4145
4198
  }
4146
4199
  });
4147
4200
  }, [env]);
4148
- const getConversionRate = (0, import_react13.useCallback)(async () => {
4201
+ const getConversionRate = (0, import_react14.useCallback)(async () => {
4149
4202
  const jsonData = {
4150
4203
  model: "res.currency",
4151
4204
  method: "web_search_read",
@@ -4171,7 +4224,7 @@ function useModelService() {
4171
4224
  }
4172
4225
  });
4173
4226
  }, [env]);
4174
- const getAll = (0, import_react13.useCallback)(
4227
+ const getAll = (0, import_react14.useCallback)(
4175
4228
  async ({
4176
4229
  data,
4177
4230
  service,
@@ -4213,7 +4266,7 @@ function useModelService() {
4213
4266
  },
4214
4267
  [env]
4215
4268
  );
4216
- const getListCalendar = (0, import_react13.useCallback)(
4269
+ const getListCalendar = (0, import_react14.useCallback)(
4217
4270
  async ({ data }) => {
4218
4271
  const jsonReadGroup = data.type == "calendar" ? data?.fields : data.fields && data.fields.length > 0 && data.groupby && data.groupby.length > 0 && data.groupby[0] ? {
4219
4272
  fields: data.fields,
@@ -4244,7 +4297,7 @@ function useModelService() {
4244
4297
  },
4245
4298
  [env]
4246
4299
  );
4247
- const getList = (0, import_react13.useCallback)(
4300
+ const getList = (0, import_react14.useCallback)(
4248
4301
  async ({
4249
4302
  model,
4250
4303
  ids = [],
@@ -4276,7 +4329,7 @@ function useModelService() {
4276
4329
  },
4277
4330
  [env]
4278
4331
  );
4279
- const getDetail = (0, import_react13.useCallback)(
4332
+ const getDetail = (0, import_react14.useCallback)(
4280
4333
  async ({
4281
4334
  ids = [],
4282
4335
  model,
@@ -4308,7 +4361,7 @@ function useModelService() {
4308
4361
  },
4309
4362
  [env]
4310
4363
  );
4311
- const save = (0, import_react13.useCallback)(
4364
+ const save = (0, import_react14.useCallback)(
4312
4365
  async ({
4313
4366
  model,
4314
4367
  ids = [],
@@ -4343,7 +4396,7 @@ function useModelService() {
4343
4396
  },
4344
4397
  [env]
4345
4398
  );
4346
- const deleteApi = (0, import_react13.useCallback)(
4399
+ const deleteApi = (0, import_react14.useCallback)(
4347
4400
  async ({ ids = [], model, service }) => {
4348
4401
  const jsonData = {
4349
4402
  model,
@@ -4363,7 +4416,7 @@ function useModelService() {
4363
4416
  },
4364
4417
  [env]
4365
4418
  );
4366
- const onChange = (0, import_react13.useCallback)(
4419
+ const onChange = (0, import_react14.useCallback)(
4367
4420
  async ({
4368
4421
  ids = [],
4369
4422
  model,
@@ -4399,7 +4452,7 @@ function useModelService() {
4399
4452
  },
4400
4453
  [env]
4401
4454
  );
4402
- const getListFieldsOnchange = (0, import_react13.useCallback)(
4455
+ const getListFieldsOnchange = (0, import_react14.useCallback)(
4403
4456
  async ({
4404
4457
  model,
4405
4458
  service,
@@ -4423,7 +4476,7 @@ function useModelService() {
4423
4476
  },
4424
4477
  [env]
4425
4478
  );
4426
- const parseORMOdoo = (0, import_react13.useCallback)((data) => {
4479
+ const parseORMOdoo = (0, import_react14.useCallback)((data) => {
4427
4480
  for (const key in data) {
4428
4481
  if (key === "display_name") {
4429
4482
  delete data[key];
@@ -4434,7 +4487,7 @@ function useModelService() {
4434
4487
  }
4435
4488
  return { ...data };
4436
4489
  }, []);
4437
- const toDataJS = (0, import_react13.useCallback)(
4490
+ const toDataJS = (0, import_react14.useCallback)(
4438
4491
  (data, viewData, model) => {
4439
4492
  for (const key in data) {
4440
4493
  if (data[key] === false) {
@@ -4492,10 +4545,10 @@ function useModelService() {
4492
4545
  }
4493
4546
 
4494
4547
  // src/services/user-service/index.ts
4495
- var import_react14 = require("react");
4548
+ var import_react15 = require("react");
4496
4549
  function useUserService() {
4497
4550
  const { env } = useEnv();
4498
- const getProfile = (0, import_react14.useCallback)(
4551
+ const getProfile = (0, import_react15.useCallback)(
4499
4552
  async (service, path, extraHeaders) => {
4500
4553
  return env?.requests?.get(
4501
4554
  path || "/userinfo" /* PROFILE_PATH */,
@@ -4512,7 +4565,7 @@ function useUserService() {
4512
4565
  },
4513
4566
  [env]
4514
4567
  );
4515
- const getUser = (0, import_react14.useCallback)(
4568
+ const getUser = (0, import_react15.useCallback)(
4516
4569
  async ({ context, id }) => {
4517
4570
  const jsonData = {
4518
4571
  model: "res.users",
@@ -4550,7 +4603,7 @@ function useUserService() {
4550
4603
  },
4551
4604
  [env]
4552
4605
  );
4553
- const switchUserLocale = (0, import_react14.useCallback)(
4606
+ const switchUserLocale = (0, import_react15.useCallback)(
4554
4607
  async ({ id, values, service }) => {
4555
4608
  const jsonData = {
4556
4609
  model: "res.users",
@@ -4578,10 +4631,10 @@ function useUserService() {
4578
4631
  }
4579
4632
 
4580
4633
  // src/services/view-service/index.ts
4581
- var import_react15 = require("react");
4634
+ var import_react16 = require("react");
4582
4635
  function useViewService() {
4583
4636
  const { env } = useEnv();
4584
- const getView = (0, import_react15.useCallback)(
4637
+ const getView = (0, import_react16.useCallback)(
4585
4638
  async ({
4586
4639
  model,
4587
4640
  views,
@@ -4621,7 +4674,7 @@ function useViewService() {
4621
4674
  },
4622
4675
  [env]
4623
4676
  );
4624
- const getMenu = (0, import_react15.useCallback)(
4677
+ const getMenu = (0, import_react16.useCallback)(
4625
4678
  async (context, specification, domain, service) => {
4626
4679
  const jsonData = {
4627
4680
  model: "ir.ui.menu" /* MENU */,
@@ -4652,7 +4705,7 @@ function useViewService() {
4652
4705
  },
4653
4706
  [env]
4654
4707
  );
4655
- const getActionDetail = (0, import_react15.useCallback)(
4708
+ const getActionDetail = (0, import_react16.useCallback)(
4656
4709
  async (aid, context) => {
4657
4710
  const jsonData = {
4658
4711
  model: "ir.actions.act_window" /* WINDOW_ACTION */,
@@ -4682,7 +4735,7 @@ function useViewService() {
4682
4735
  },
4683
4736
  [env]
4684
4737
  );
4685
- const getResequence = (0, import_react15.useCallback)(
4738
+ const getResequence = (0, import_react16.useCallback)(
4686
4739
  async ({
4687
4740
  model,
4688
4741
  ids,
@@ -4712,7 +4765,7 @@ function useViewService() {
4712
4765
  },
4713
4766
  [env]
4714
4767
  );
4715
- const getSelectionItem = (0, import_react15.useCallback)(
4768
+ const getSelectionItem = (0, import_react16.useCallback)(
4716
4769
  async ({
4717
4770
  data,
4718
4771
  service,
@@ -4749,7 +4802,7 @@ function useViewService() {
4749
4802
  },
4750
4803
  [env]
4751
4804
  );
4752
- const loadMessages = (0, import_react15.useCallback)(async () => {
4805
+ const loadMessages = (0, import_react16.useCallback)(async () => {
4753
4806
  return env.requests.post(
4754
4807
  "/load_message_failures" /* LOAD_MESSAGE */,
4755
4808
  {},
@@ -4760,14 +4813,14 @@ function useViewService() {
4760
4813
  }
4761
4814
  );
4762
4815
  }, [env]);
4763
- const getVersion = (0, import_react15.useCallback)(async () => {
4816
+ const getVersion = (0, import_react16.useCallback)(async () => {
4764
4817
  return env?.requests?.get("", {
4765
4818
  headers: {
4766
4819
  "Content-Type": "application/json"
4767
4820
  }
4768
4821
  });
4769
4822
  }, [env]);
4770
- const grantAccess = (0, import_react15.useCallback)(
4823
+ const grantAccess = (0, import_react16.useCallback)(
4771
4824
  async ({
4772
4825
  redirect_uri,
4773
4826
  state,
@@ -4794,7 +4847,7 @@ function useViewService() {
4794
4847
  },
4795
4848
  [env]
4796
4849
  );
4797
- const removeTotpSetUp = (0, import_react15.useCallback)(
4850
+ const removeTotpSetUp = (0, import_react16.useCallback)(
4798
4851
  async ({ method, token }) => {
4799
4852
  const jsonData = {
4800
4853
  method,
@@ -4815,7 +4868,7 @@ function useViewService() {
4815
4868
  },
4816
4869
  [env]
4817
4870
  );
4818
- const requestSetupTotp = (0, import_react15.useCallback)(
4871
+ const requestSetupTotp = (0, import_react16.useCallback)(
4819
4872
  async ({ method, token }) => {
4820
4873
  const jsonData = {
4821
4874
  method,
@@ -4834,7 +4887,7 @@ function useViewService() {
4834
4887
  },
4835
4888
  [env]
4836
4889
  );
4837
- const settingsWebRead2fa = (0, import_react15.useCallback)(
4890
+ const settingsWebRead2fa = (0, import_react16.useCallback)(
4838
4891
  async ({
4839
4892
  method,
4840
4893
  model,
@@ -4862,7 +4915,7 @@ function useViewService() {
4862
4915
  },
4863
4916
  [env]
4864
4917
  );
4865
- const signInSSO = (0, import_react15.useCallback)(
4918
+ const signInSSO = (0, import_react16.useCallback)(
4866
4919
  async ({
4867
4920
  redirect_uri,
4868
4921
  state,
@@ -4894,7 +4947,7 @@ function useViewService() {
4894
4947
  },
4895
4948
  [env]
4896
4949
  );
4897
- const verify2FA = (0, import_react15.useCallback)(
4950
+ const verify2FA = (0, import_react16.useCallback)(
4898
4951
  ({
4899
4952
  method,
4900
4953
  with_context,
@@ -4927,7 +4980,7 @@ function useViewService() {
4927
4980
  },
4928
4981
  [env]
4929
4982
  );
4930
- const get2FAMethods = (0, import_react15.useCallback)(
4983
+ const get2FAMethods = (0, import_react16.useCallback)(
4931
4984
  ({ method, with_context }) => {
4932
4985
  const jsonData = {
4933
4986
  method,
@@ -4946,7 +4999,7 @@ function useViewService() {
4946
4999
  },
4947
5000
  [env]
4948
5001
  );
4949
- const verifyTotp = (0, import_react15.useCallback)(
5002
+ const verifyTotp = (0, import_react16.useCallback)(
4950
5003
  ({
4951
5004
  method,
4952
5005
  action_token,
@@ -4971,7 +5024,7 @@ function useViewService() {
4971
5024
  },
4972
5025
  [env]
4973
5026
  );
4974
- const getNotifications = (0, import_react15.useCallback)(
5027
+ const getNotifications = (0, import_react16.useCallback)(
4975
5028
  async ({
4976
5029
  service,
4977
5030
  xNode,
@@ -4991,7 +5044,7 @@ function useViewService() {
4991
5044
  },
4992
5045
  [env]
4993
5046
  );
4994
- const getCountry = (0, import_react15.useCallback)(
5047
+ const getCountry = (0, import_react16.useCallback)(
4995
5048
  async ({
4996
5049
  service,
4997
5050
  xNode,
@@ -5018,7 +5071,7 @@ function useViewService() {
5018
5071
  },
5019
5072
  [env]
5020
5073
  );
5021
- const getCity = (0, import_react15.useCallback)(
5074
+ const getCity = (0, import_react16.useCallback)(
5022
5075
  async ({
5023
5076
  service,
5024
5077
  xNode,
@@ -5045,7 +5098,7 @@ function useViewService() {
5045
5098
  },
5046
5099
  [env]
5047
5100
  );
5048
- const getWard = (0, import_react15.useCallback)(
5101
+ const getWard = (0, import_react16.useCallback)(
5049
5102
  async ({
5050
5103
  service,
5051
5104
  xNode,
@@ -5070,7 +5123,7 @@ function useViewService() {
5070
5123
  },
5071
5124
  [env]
5072
5125
  );
5073
- const getPartnerTitle = (0, import_react15.useCallback)(
5126
+ const getPartnerTitle = (0, import_react16.useCallback)(
5074
5127
  async ({
5075
5128
  service,
5076
5129
  xNode,
@@ -5122,10 +5175,10 @@ function useViewService() {
5122
5175
  }
5123
5176
 
5124
5177
  // src/services/dashboard-service/index.ts
5125
- var import_react16 = require("react");
5178
+ var import_react17 = require("react");
5126
5179
  function useDashboardService() {
5127
5180
  const { env } = useEnv();
5128
- const readGroup = (0, import_react16.useCallback)(
5181
+ const readGroup = (0, import_react17.useCallback)(
5129
5182
  async ({
5130
5183
  service,
5131
5184
  xNode,
@@ -5142,7 +5195,7 @@ function useDashboardService() {
5142
5195
  },
5143
5196
  [env]
5144
5197
  );
5145
- const getDataChart = (0, import_react16.useCallback)(
5198
+ const getDataChart = (0, import_react17.useCallback)(
5146
5199
  async ({
5147
5200
  service,
5148
5201
  xNode,
@@ -5178,9 +5231,9 @@ function useDashboardService() {
5178
5231
  }
5179
5232
 
5180
5233
  // src/services/pos-service/get-a-session.ts
5181
- var import_react17 = require("react");
5234
+ var import_react18 = require("react");
5182
5235
  var getASessionService = (env) => {
5183
- const getASession = (0, import_react17.useCallback)(
5236
+ const getASession = (0, import_react18.useCallback)(
5184
5237
  async ({
5185
5238
  model,
5186
5239
  args,
@@ -5229,546 +5282,9 @@ var getASessionService = (env) => {
5229
5282
  };
5230
5283
 
5231
5284
  // src/services/pos-service/add-entity.ts
5232
- var import_react18 = require("react");
5233
-
5234
- // src/services/filesystem-service/file-service.ts
5235
- var import_filesystem = require("@capacitor/filesystem");
5236
- var fileService = {
5237
- read: async (path) => {
5238
- try {
5239
- const res = await import_filesystem.Filesystem.readFile({
5240
- path,
5241
- directory: import_filesystem.Directory.Data,
5242
- encoding: import_filesystem.Encoding.UTF8
5243
- });
5244
- if (typeof res.data === "string") return res.data;
5245
- if (res.data instanceof Blob) return await res.data.text();
5246
- return null;
5247
- } catch {
5248
- return null;
5249
- }
5250
- },
5251
- write: async (path, data) => {
5252
- await import_filesystem.Filesystem.writeFile({
5253
- path,
5254
- data,
5255
- directory: import_filesystem.Directory.Data,
5256
- encoding: import_filesystem.Encoding.UTF8,
5257
- recursive: true
5258
- });
5259
- },
5260
- writeAtomic: async (path, data) => {
5261
- const tempPath = path + ".tmp";
5262
- await import_filesystem.Filesystem.writeFile({
5263
- path: tempPath,
5264
- data,
5265
- directory: import_filesystem.Directory.Data,
5266
- encoding: import_filesystem.Encoding.UTF8,
5267
- recursive: true
5268
- });
5269
- try {
5270
- await import_filesystem.Filesystem.deleteFile({
5271
- path,
5272
- directory: import_filesystem.Directory.Data
5273
- });
5274
- } catch {
5275
- }
5276
- await import_filesystem.Filesystem.rename({
5277
- from: tempPath,
5278
- to: path,
5279
- directory: import_filesystem.Directory.Data
5280
- });
5281
- },
5282
- delete: async (path) => {
5283
- try {
5284
- await import_filesystem.Filesystem.deleteFile({
5285
- path,
5286
- directory: import_filesystem.Directory.Data
5287
- });
5288
- } catch {
5289
- }
5290
- },
5291
- exists: async (path) => {
5292
- try {
5293
- await import_filesystem.Filesystem.stat({
5294
- path,
5295
- directory: import_filesystem.Directory.Data
5296
- });
5297
- return true;
5298
- } catch {
5299
- return false;
5300
- }
5301
- },
5302
- mkdir: async (path) => {
5303
- try {
5304
- await import_filesystem.Filesystem.mkdir({
5305
- path,
5306
- directory: import_filesystem.Directory.Data,
5307
- recursive: true
5308
- });
5309
- } catch (e) {
5310
- if (!String(e?.message).includes("Exists")) {
5311
- throw e;
5312
- }
5313
- }
5314
- },
5315
- list: async (path) => {
5316
- return import_filesystem.Filesystem.readdir({
5317
- path,
5318
- directory: import_filesystem.Directory.Data
5319
- });
5320
- },
5321
- getUri: async (path) => {
5322
- return import_filesystem.Filesystem.getUri({
5323
- path,
5324
- directory: import_filesystem.Directory.Data
5325
- });
5326
- }
5327
- };
5328
-
5329
- // src/services/filesystem-service/json-worker.ts
5330
- function createWorkerBlob() {
5331
- const workerCode = `
5332
- self.addEventListener("message", async (ev) => {
5333
- const { id, cmd, payload } = ev.data;
5334
- try {
5335
- if (cmd === "parse") {
5336
- const parsed = JSON.parse(payload);
5337
- self.postMessage({ id, ok: true, result: parsed });
5338
- } else if (cmd === "stringify") {
5339
- const str = JSON.stringify(payload);
5340
- self.postMessage({ id, ok: true, result: str });
5341
- }
5342
- } catch (err) {
5343
- self.postMessage({ id, ok: false, error: err?.message || String(err) });
5344
- }
5345
- });
5346
- `;
5347
- const blob = new Blob([workerCode], { type: "application/javascript" });
5348
- return URL.createObjectURL(blob);
5349
- }
5350
- function spawnParseWorker(raw) {
5351
- return new Promise((resolve, reject) => {
5352
- const workerUrl = createWorkerBlob();
5353
- const worker = new Worker(workerUrl);
5354
- const id = Math.random().toString(36).slice(2);
5355
- worker.onmessage = (ev) => {
5356
- const { ok, result, error } = ev.data;
5357
- if (ok) {
5358
- resolve(result);
5359
- } else {
5360
- reject(new Error(error));
5361
- }
5362
- URL.revokeObjectURL(workerUrl);
5363
- worker.terminate();
5364
- };
5365
- worker.onerror = (err) => {
5366
- reject(err);
5367
- URL.revokeObjectURL(workerUrl);
5368
- worker.terminate();
5369
- };
5370
- worker.postMessage({ id, cmd: "parse", payload: raw });
5371
- });
5372
- }
5373
- function spawnStringifyWorker(obj) {
5374
- return new Promise((resolve, reject) => {
5375
- const workerUrl = createWorkerBlob();
5376
- const worker = new Worker(workerUrl);
5377
- worker.onmessage = (ev) => {
5378
- const { ok, result, error } = ev.data;
5379
- if (ok) resolve(result);
5380
- else reject(new Error(error));
5381
- URL.revokeObjectURL(workerUrl);
5382
- worker.terminate();
5383
- };
5384
- worker.onerror = (err) => {
5385
- reject(err);
5386
- URL.revokeObjectURL(workerUrl);
5387
- worker.terminate();
5388
- };
5389
- worker.postMessage({ cmd: "stringify", payload: obj });
5390
- });
5391
- }
5392
-
5393
- // src/services/filesystem-service/manifest.ts
5394
- var MANIFEST_PATH = "pos/manifest.json";
5395
- var MANIFEST_BAK_PATH = "pos/manifest.bak.json";
5396
- async function writeManifest(manifest) {
5397
- const oldRaw = await fileService.read(MANIFEST_PATH);
5398
- if (oldRaw !== null) {
5399
- await fileService.writeAtomic(MANIFEST_BAK_PATH, oldRaw);
5400
- }
5401
- await fileService.writeAtomic(MANIFEST_PATH, JSON.stringify(manifest));
5402
- try {
5403
- await fileService.delete(MANIFEST_BAK_PATH);
5404
- } catch {
5405
- }
5406
- }
5407
-
5408
- // src/services/filesystem-service/import-snapshot.ts
5409
- var DATA_DIR = "pos";
5410
- var MODELS_DIR = `${DATA_DIR}/models`;
5411
- var MODELS_META_DIR = `${DATA_DIR}/models_meta`;
5412
- var importSnapshot = async ({ data, onProgress }) => {
5413
- onProgress?.(1, "Parsing snapshot");
5414
- const parsed = await spawnParseWorker(data);
5415
- const modelNames = Object.keys(parsed);
5416
- const total = modelNames.length;
5417
- const manifest = { version: (/* @__PURE__ */ new Date()).toISOString(), models: {} };
5418
- const TMP_PREFIX = `pos/data/tmp_import_${Date.now()}`;
5419
- await fileService.writeAtomic(`${TMP_PREFIX}/.marker`, "1");
5420
- let i = 0;
5421
- for (const model of modelNames) {
5422
- i++;
5423
- onProgress?.(
5424
- Math.round(i / total * 100),
5425
- `Processing ${model} (${i}/${total})`
5426
- );
5427
- const block = parsed[model];
5428
- const dataPart = block?.data ?? block ?? [];
5429
- const fields = block?.fields ?? [];
5430
- const relations = block?.relations ?? {};
5431
- const serialized = await spawnStringifyWorker(dataPart);
5432
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5433
- await fileService.writeAtomic(tmpModelPath, serialized);
5434
- const meta = {
5435
- fields,
5436
- relations,
5437
- count: Array.isArray(dataPart) ? dataPart.length : 0,
5438
- writtenAt: (/* @__PURE__ */ new Date()).toISOString()
5439
- };
5440
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5441
- await fileService.writeAtomic(tmpMetaPath, JSON.stringify(meta));
5442
- manifest.models[model] = {
5443
- file: `${MODELS_DIR}/${encodeURIComponent(model)}.json`,
5444
- metaFile: `${MODELS_META_DIR}/${encodeURIComponent(model)}.meta.json`,
5445
- count: meta.count,
5446
- updatedAt: meta.writtenAt
5447
- };
5448
- }
5449
- onProgress?.(95, "Committing import (moving files)");
5450
- for (const model of modelNames) {
5451
- const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
5452
- const finalModelPath = `${MODELS_DIR}/${encodeURIComponent(model)}.json`;
5453
- const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
5454
- const finalMetaPath = `${MODELS_META_DIR}/${encodeURIComponent(
5455
- model
5456
- )}.meta.json`;
5457
- const tmpRaw = await fileService.read(tmpModelPath);
5458
- if (tmpRaw !== null) await fileService.writeAtomic(finalModelPath, tmpRaw);
5459
- const tmpMetaRaw = await fileService.read(tmpMetaPath);
5460
- if (tmpMetaRaw !== null)
5461
- await fileService.writeAtomic(finalMetaPath, tmpMetaRaw);
5462
- onProgress?.(
5463
- 95 + Math.round(
5464
- (Object.keys(manifest.models).indexOf(model) + 1) / modelNames.length * 5
5465
- ),
5466
- `Committed ${model}`
5467
- );
5468
- }
5469
- await writeManifest(manifest);
5470
- try {
5471
- for (const model of modelNames) {
5472
- await fileService.delete(
5473
- `${TMP_PREFIX}/${encodeURIComponent(model)}.json`
5474
- );
5475
- await fileService.delete(
5476
- `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`
5477
- );
5478
- }
5479
- await fileService.delete(`${TMP_PREFIX}/.marker`);
5480
- } catch (e) {
5481
- console.log("Failed to cleanup tmp import files:", e);
5482
- }
5483
- onProgress?.(100, "Import complete");
5484
- return manifest;
5485
- };
5486
- var import_snapshot_default = importSnapshot;
5487
-
5488
- // src/services/filesystem-service/memory-cache.ts
5489
- var MemoryCache = class {
5490
- map = /* @__PURE__ */ new Map();
5491
- get(k) {
5492
- const e = this.map.get(k);
5493
- if (!e) return null;
5494
- if (e.ttl && Date.now() - e.t > e.ttl) {
5495
- this.map.delete(k);
5496
- return null;
5497
- }
5498
- return e.value;
5499
- }
5500
- set(k, v, ttl = 5 * 60 * 1e3) {
5501
- this.map.set(k, { value: v, t: Date.now(), ttl });
5502
- }
5503
- del(k) {
5504
- this.map.delete(k);
5505
- }
5506
- clear() {
5507
- this.map.clear();
5508
- }
5509
- };
5510
- var memoryCache = new MemoryCache();
5511
-
5512
- // src/services/filesystem-service/model-loader.ts
5513
- var MODELS_DIR2 = "pos/models";
5514
- var MODELS_META_DIR2 = "pos/models_meta";
5515
- async function loadModelData(modelName, includeMeta = true) {
5516
- const key = `model:${modelName}:meta:${includeMeta}`;
5517
- const cached = memoryCache.get(key);
5518
- if (cached) return cached;
5519
- const dataPath = `${MODELS_DIR2}/${encodeURIComponent(modelName)}.json`;
5520
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5521
- modelName
5522
- )}.meta.json`;
5523
- const rawData = await fileService.read(dataPath);
5524
- if (!rawData) return null;
5525
- const parsedData = await spawnParseWorker(rawData);
5526
- const data = Array.isArray(parsedData) ? parsedData : [];
5527
- if (!includeMeta) {
5528
- const result2 = { data };
5529
- memoryCache.set(key, result2, 1e3 * 60 * 60);
5530
- return result2;
5531
- }
5532
- const rawMeta = await fileService.read(metaPath);
5533
- let fields = [];
5534
- let relations = {};
5535
- if (rawMeta) {
5536
- const parsedMeta = await spawnParseWorker(rawMeta);
5537
- fields = parsedMeta?.fields ?? [];
5538
- relations = parsedMeta?.relations ?? {};
5539
- }
5540
- const result = {
5541
- data,
5542
- fields,
5543
- relations
5544
- };
5545
- memoryCache.set(key, result, 1e3 * 60 * 60);
5546
- return result;
5547
- }
5548
- async function loadData(includeMeta = true) {
5549
- try {
5550
- const listResult = await fileService.list(MODELS_DIR2);
5551
- if (!listResult || !Array.isArray(listResult.files)) {
5552
- console.log("No models found");
5553
- return {};
5554
- }
5555
- const result = {};
5556
- for (const file of listResult.files) {
5557
- if (file.type !== "file") continue;
5558
- if (!file.name.endsWith(".json")) continue;
5559
- const fileName = file.name;
5560
- const modelName = fileName.replace(/\.json$/, "");
5561
- const dataPath = `${MODELS_DIR2}/${fileName}`;
5562
- const rawData = await fileService.read(dataPath);
5563
- if (!rawData) continue;
5564
- const parsedData = await spawnParseWorker(rawData);
5565
- const data = Array.isArray(parsedData) ? parsedData : [];
5566
- if (!includeMeta) {
5567
- result[modelName] = { data };
5568
- continue;
5569
- }
5570
- const metaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
5571
- modelName
5572
- )}.meta.json`;
5573
- const rawMeta = await fileService.read(metaPath);
5574
- let fields = [];
5575
- let relations = {};
5576
- if (rawMeta) {
5577
- const parsedMeta = await spawnParseWorker(rawMeta);
5578
- fields = parsedMeta?.fields ?? [];
5579
- relations = parsedMeta?.relations ?? {};
5580
- }
5581
- result[modelName] = {
5582
- data,
5583
- fields,
5584
- relations
5585
- };
5586
- }
5587
- return result;
5588
- } catch (error) {
5589
- console.error("Error loading data:", error);
5590
- throw error;
5591
- }
5592
- }
5593
-
5594
- // src/services/filesystem-service/snapshot-helper.ts
5595
- var createEmptySnapshot = () => {
5596
- return {
5597
- data: []
5598
- };
5599
- };
5600
- var generateNextId = (existingIds, startFrom = 1) => {
5601
- if (!existingIds || existingIds.length === 0) {
5602
- return startFrom;
5603
- }
5604
- const maxId = Math.max(...existingIds, startFrom - 1);
5605
- return maxId + 1;
5606
- };
5607
- var loadSnapshot = async ({
5608
- modelName
5609
- }) => {
5610
- try {
5611
- const snapshot = await loadModelData(modelName);
5612
- if (!snapshot || typeof snapshot !== "object") {
5613
- console.warn("invalid snapshot, creating new one");
5614
- return createEmptySnapshot();
5615
- }
5616
- return {
5617
- data: Array.isArray(snapshot.data) ? snapshot.data : []
5618
- };
5619
- } catch (error) {
5620
- console.error("Failed to load snapshot:", error);
5621
- return createEmptySnapshot();
5622
- }
5623
- };
5624
- var getExistingIds = (snapshot) => {
5625
- return snapshot.data.map((order) => order.id).filter((id) => typeof id === "number");
5626
- };
5627
- var saveSnapshot = async ({
5628
- snapshot,
5629
- modelName
5630
- }) => {
5631
- try {
5632
- await import_snapshot_default({
5633
- data: JSON.stringify({
5634
- [modelName]: snapshot
5635
- })
5636
- });
5637
- return true;
5638
- } catch (error) {
5639
- console.error("failed to save snapshot:", error);
5640
- return false;
5641
- }
5642
- };
5643
- var addRecordResponseHandler = ({
5644
- modelName,
5645
- id,
5646
- data
5647
- }) => {
5648
- if (modelName === "restaurant.floor" /* RESTAURANT_FLOOR */ || modelName === "res.partner" /* RES_PARTNER */) {
5649
- return [[id, ""]];
5650
- }
5651
- return data;
5652
- };
5653
-
5654
- // src/services/filesystem-service/model-repository.ts
5655
- var ModelRepository = class {
5656
- getAll = async ({ modelName }) => {
5657
- try {
5658
- const snapshot = await loadSnapshot({
5659
- modelName
5660
- });
5661
- return snapshot.data;
5662
- } catch (error) {
5663
- console.error("failed to get all records:", error);
5664
- return [];
5665
- }
5666
- };
5667
- getRecord = async ({
5668
- id,
5669
- modelName
5670
- }) => {
5671
- try {
5672
- const snapshot = await loadSnapshot({
5673
- modelName
5674
- });
5675
- return snapshot.data.find((record) => record.id === id) || null;
5676
- } catch (error) {
5677
- console.error("failed to get record:", error);
5678
- return null;
5679
- }
5680
- };
5681
- addRecord = async ({
5682
- newRecord,
5683
- modelName
5684
- }) => {
5685
- try {
5686
- const snapshot = await loadSnapshot({
5687
- modelName
5688
- });
5689
- const existingIds = getExistingIds(snapshot);
5690
- const newId = generateNextId(existingIds, snapshot.data.length);
5691
- snapshot.data.push({
5692
- ...newRecord,
5693
- id: newId
5694
- });
5695
- const saved = await saveSnapshot({
5696
- snapshot,
5697
- modelName
5698
- });
5699
- if (!saved) {
5700
- console.error("failed to add new record");
5701
- return [];
5702
- }
5703
- console.log("lib data:", snapshot.data);
5704
- const response = addRecordResponseHandler({
5705
- id: newId,
5706
- modelName,
5707
- data: snapshot.data
5708
- });
5709
- return response;
5710
- } catch (error) {
5711
- console.error("failed to add new record:", error);
5712
- return [];
5713
- }
5714
- };
5715
- updateRecord = async ({
5716
- id,
5717
- update,
5718
- modelName
5719
- }) => {
5720
- try {
5721
- const snapshot = await loadSnapshot({
5722
- modelName
5723
- });
5724
- const index = snapshot.data.findIndex((record) => record.id === id);
5725
- if (index === -1) {
5726
- console.error(`record with id ${id} not found`);
5727
- return false;
5728
- }
5729
- snapshot.data[index] = {
5730
- ...snapshot.data[index],
5731
- ...update
5732
- };
5733
- return await saveSnapshot({
5734
- snapshot,
5735
- modelName
5736
- });
5737
- } catch (error) {
5738
- console.error("error updating record:", error);
5739
- return false;
5740
- }
5741
- };
5742
- deleteRecord = async ({
5743
- id,
5744
- modelName
5745
- }) => {
5746
- try {
5747
- const snapshot = await loadSnapshot({
5748
- modelName
5749
- });
5750
- const before = snapshot.data.length;
5751
- snapshot.data = snapshot.data.filter((record) => record.id !== id);
5752
- if (snapshot.data.length === before) {
5753
- console.error(`record with id ${id} not found`);
5754
- return false;
5755
- }
5756
- return await saveSnapshot({
5757
- snapshot,
5758
- modelName
5759
- });
5760
- } catch (error) {
5761
- console.error("error deleting record:", error);
5762
- return false;
5763
- }
5764
- };
5765
- };
5766
-
5767
- // src/services/pos-service/add-entity.ts
5285
+ var import_react19 = require("react");
5768
5286
  var addEntityService = (env) => {
5769
- const isLocalMode = env?.isLocalMode;
5770
- const repo = new ModelRepository();
5771
- const addEntity = (0, import_react18.useCallback)(
5287
+ const addEntity = (0, import_react19.useCallback)(
5772
5288
  ({
5773
5289
  model,
5774
5290
  values,
@@ -5776,12 +5292,6 @@ var addEntityService = (env) => {
5776
5292
  service,
5777
5293
  isCreateEndpoint = false
5778
5294
  }) => {
5779
- if (isLocalMode) {
5780
- return repo.addRecord({
5781
- newRecord: values,
5782
- modelName: model
5783
- });
5784
- }
5785
5295
  const jsonData = {
5786
5296
  model,
5787
5297
  values
@@ -5798,7 +5308,7 @@ var addEntityService = (env) => {
5798
5308
  service
5799
5309
  );
5800
5310
  },
5801
- [env, isLocalMode]
5311
+ [env]
5802
5312
  );
5803
5313
  return {
5804
5314
  addEntity
@@ -5806,9 +5316,9 @@ var addEntityService = (env) => {
5806
5316
  };
5807
5317
 
5808
5318
  // src/services/pos-service/change-order-preparation-state.ts
5809
- var import_react19 = require("react");
5319
+ var import_react20 = require("react");
5810
5320
  var changOrderPreparationStateService = (env) => {
5811
- const changeOrderPreparationState = (0, import_react19.useCallback)(
5321
+ const changeOrderPreparationState = (0, import_react20.useCallback)(
5812
5322
  ({
5813
5323
  orderId,
5814
5324
  stageId,
@@ -5845,9 +5355,9 @@ var changOrderPreparationStateService = (env) => {
5845
5355
  };
5846
5356
 
5847
5357
  // src/services/pos-service/check-payment.ts
5848
- var import_react20 = require("react");
5358
+ var import_react21 = require("react");
5849
5359
  var checkPaymentService = (env) => {
5850
- const checkPayment = (0, import_react20.useCallback)(
5360
+ const checkPayment = (0, import_react21.useCallback)(
5851
5361
  ({
5852
5362
  model,
5853
5363
  ids,
@@ -5881,9 +5391,9 @@ var checkPaymentService = (env) => {
5881
5391
  };
5882
5392
 
5883
5393
  // src/services/pos-service/create-e-invoice.ts
5884
- var import_react21 = require("react");
5394
+ var import_react22 = require("react");
5885
5395
  var createEInvoiceService = (env) => {
5886
- const createEInvoice = (0, import_react21.useCallback)(
5396
+ const createEInvoice = (0, import_react22.useCallback)(
5887
5397
  async ({
5888
5398
  service,
5889
5399
  xNode,
@@ -5918,23 +5428,15 @@ var createEInvoiceService = (env) => {
5918
5428
  };
5919
5429
 
5920
5430
  // src/services/pos-service/create-entity.ts
5921
- var import_react22 = require("react");
5431
+ var import_react23 = require("react");
5922
5432
  var createEntityService = (env) => {
5923
- const isLocalMode = env?.isLocalMode;
5924
- const repo = new ModelRepository();
5925
- const createEntity = (0, import_react22.useCallback)(
5433
+ const createEntity = (0, import_react23.useCallback)(
5926
5434
  ({
5927
5435
  model,
5928
5436
  args,
5929
5437
  xNode,
5930
5438
  service
5931
5439
  }) => {
5932
- if (isLocalMode) {
5933
- return repo.addRecord({
5934
- newRecord: args[0],
5935
- modelName: model
5936
- });
5937
- }
5938
5440
  const jsonData = {
5939
5441
  model,
5940
5442
  method: "create" /* CREATE */,
@@ -5952,7 +5454,7 @@ var createEntityService = (env) => {
5952
5454
  service
5953
5455
  );
5954
5456
  },
5955
- [env, isLocalMode]
5457
+ [env]
5956
5458
  );
5957
5459
  return {
5958
5460
  createEntity
@@ -5960,9 +5462,9 @@ var createEntityService = (env) => {
5960
5462
  };
5961
5463
 
5962
5464
  // src/services/pos-service/create-pos-config.ts
5963
- var import_react23 = require("react");
5465
+ var import_react24 = require("react");
5964
5466
  var createPosConfigService = (env) => {
5965
- const createPosConfig = (0, import_react23.useCallback)(
5467
+ const createPosConfig = (0, import_react24.useCallback)(
5966
5468
  ({
5967
5469
  model,
5968
5470
  name,
@@ -5997,9 +5499,9 @@ var createPosConfigService = (env) => {
5997
5499
  };
5998
5500
 
5999
5501
  // src/services/pos-service/create-session.ts
6000
- var import_react24 = require("react");
5502
+ var import_react25 = require("react");
6001
5503
  var createSessionService = (env) => {
6002
- const createSession = (0, import_react24.useCallback)(
5504
+ const createSession = (0, import_react25.useCallback)(
6003
5505
  ({
6004
5506
  model,
6005
5507
  configId,
@@ -6035,11 +5537,9 @@ var createSessionService = (env) => {
6035
5537
  };
6036
5538
 
6037
5539
  // src/services/pos-service/delete-entity.ts
6038
- var import_react25 = require("react");
5540
+ var import_react26 = require("react");
6039
5541
  var deleteEntityService = (env) => {
6040
- const isLocalMode = env?.isLocalMode;
6041
- const repo = new ModelRepository();
6042
- const deleteEntity = (0, import_react25.useCallback)(
5542
+ const deleteEntity = (0, import_react26.useCallback)(
6043
5543
  ({
6044
5544
  model,
6045
5545
  ids,
@@ -6047,14 +5547,6 @@ var deleteEntityService = (env) => {
6047
5547
  service,
6048
5548
  method
6049
5549
  }) => {
6050
- if (isLocalMode) {
6051
- const id = ids[0];
6052
- if (!id) return;
6053
- return repo.deleteRecord({
6054
- modelName: model,
6055
- id
6056
- });
6057
- }
6058
5550
  const jsonData = {
6059
5551
  model,
6060
5552
  ids,
@@ -6072,7 +5564,7 @@ var deleteEntityService = (env) => {
6072
5564
  service
6073
5565
  );
6074
5566
  },
6075
- [env, isLocalMode]
5567
+ [env]
6076
5568
  );
6077
5569
  return {
6078
5570
  deleteEntity
@@ -6080,9 +5572,9 @@ var deleteEntityService = (env) => {
6080
5572
  };
6081
5573
 
6082
5574
  // src/services/pos-service/generate-payment-qr-info.ts
6083
- var import_react26 = require("react");
5575
+ var import_react27 = require("react");
6084
5576
  var generatePaymentQrInfoService = (env) => {
6085
- const generatePaymentQRInfo = (0, import_react26.useCallback)(
5577
+ const generatePaymentQRInfo = (0, import_react27.useCallback)(
6086
5578
  ({
6087
5579
  orderId,
6088
5580
  amount,
@@ -6115,9 +5607,9 @@ var generatePaymentQrInfoService = (env) => {
6115
5607
  };
6116
5608
 
6117
5609
  // src/services/pos-service/get-current-user.ts
6118
- var import_react27 = require("react");
5610
+ var import_react28 = require("react");
6119
5611
  var getCurrentUserService = (env) => {
6120
- const getCurrentUser = (0, import_react27.useCallback)(
5612
+ const getCurrentUser = (0, import_react28.useCallback)(
6121
5613
  async ({
6122
5614
  service,
6123
5615
  xNode,
@@ -6147,11 +5639,9 @@ var getCurrentUserService = (env) => {
6147
5639
  };
6148
5640
 
6149
5641
  // src/services/pos-service/get-list.ts
6150
- var import_react28 = require("react");
5642
+ var import_react29 = require("react");
6151
5643
  var getListService = (env) => {
6152
- const isLocalMode = env?.isLocalMode;
6153
- const repo = new ModelRepository();
6154
- const getList = (0, import_react28.useCallback)(
5644
+ const getList = (0, import_react29.useCallback)(
6155
5645
  async ({
6156
5646
  model,
6157
5647
  domain,
@@ -6161,12 +5651,6 @@ var getListService = (env) => {
6161
5651
  offset,
6162
5652
  limit
6163
5653
  }) => {
6164
- if (isLocalMode) {
6165
- const data = await repo.getAll({
6166
- modelName: model
6167
- });
6168
- return data;
6169
- }
6170
5654
  const jsonData = {
6171
5655
  model,
6172
5656
  method: "web_search_read" /* WEB_SEARCH_READ */,
@@ -6189,7 +5673,7 @@ var getListService = (env) => {
6189
5673
  service
6190
5674
  );
6191
5675
  },
6192
- [env, isLocalMode]
5676
+ [env]
6193
5677
  );
6194
5678
  return {
6195
5679
  getList
@@ -6197,9 +5681,9 @@ var getListService = (env) => {
6197
5681
  };
6198
5682
 
6199
5683
  // src/services/pos-service/get-order-line.ts
6200
- var import_react29 = require("react");
5684
+ var import_react30 = require("react");
6201
5685
  var getOrderLineService = (env) => {
6202
- const getOrderLine = (0, import_react29.useCallback)(
5686
+ const getOrderLine = (0, import_react30.useCallback)(
6203
5687
  ({
6204
5688
  model,
6205
5689
  ids,
@@ -6235,9 +5719,9 @@ var getOrderLineService = (env) => {
6235
5719
  };
6236
5720
 
6237
5721
  // src/services/pos-service/get-pin-code.ts
6238
- var import_react30 = require("react");
5722
+ var import_react31 = require("react");
6239
5723
  var getPinCodeService = (env) => {
6240
- const getPinCode = (0, import_react30.useCallback)(
5724
+ const getPinCode = (0, import_react31.useCallback)(
6241
5725
  ({
6242
5726
  serialNumber,
6243
5727
  xNode,
@@ -6266,9 +5750,9 @@ var getPinCodeService = (env) => {
6266
5750
  };
6267
5751
 
6268
5752
  // src/services/pos-service/get-pos.ts
6269
- var import_react31 = require("react");
5753
+ var import_react32 = require("react");
6270
5754
  var getPosService = (env) => {
6271
- const getPOS = (0, import_react31.useCallback)(
5755
+ const getPOS = (0, import_react32.useCallback)(
6272
5756
  ({
6273
5757
  model,
6274
5758
  args,
@@ -6332,9 +5816,9 @@ var getPosService = (env) => {
6332
5816
  };
6333
5817
 
6334
5818
  // src/services/pos-service/get-preparation-display-data.ts
6335
- var import_react32 = require("react");
5819
+ var import_react33 = require("react");
6336
5820
  var getPreparationDisplayDataService = (env) => {
6337
- const getPreparationDisplayData = (0, import_react32.useCallback)(
5821
+ const getPreparationDisplayData = (0, import_react33.useCallback)(
6338
5822
  ({
6339
5823
  ids,
6340
5824
  xNode,
@@ -6367,9 +5851,9 @@ var getPreparationDisplayDataService = (env) => {
6367
5851
  };
6368
5852
 
6369
5853
  // src/services/pos-service/get-product-image.ts
6370
- var import_react33 = require("react");
5854
+ var import_react34 = require("react");
6371
5855
  var getProductImageService = (env) => {
6372
- const getProductImage = (0, import_react33.useCallback)(
5856
+ const getProductImage = (0, import_react34.useCallback)(
6373
5857
  ({
6374
5858
  model,
6375
5859
  fields,
@@ -6408,9 +5892,9 @@ var getProductImageService = (env) => {
6408
5892
  };
6409
5893
 
6410
5894
  // src/services/pos-service/handle-close-session.ts
6411
- var import_react34 = require("react");
5895
+ var import_react35 = require("react");
6412
5896
  var handleCloseSessionService = (env) => {
6413
- const handleCloseSession = (0, import_react34.useCallback)(
5897
+ const handleCloseSession = (0, import_react35.useCallback)(
6414
5898
  ({
6415
5899
  model,
6416
5900
  ids,
@@ -6443,9 +5927,9 @@ var handleCloseSessionService = (env) => {
6443
5927
  };
6444
5928
 
6445
5929
  // src/services/pos-service/handle-closing-detail-session.ts
6446
- var import_react35 = require("react");
5930
+ var import_react36 = require("react");
6447
5931
  var handleClosingDetailSessionService = (env) => {
6448
- const handleClosingDetailSession = (0, import_react35.useCallback)(
5932
+ const handleClosingDetailSession = (0, import_react36.useCallback)(
6449
5933
  ({
6450
5934
  model,
6451
5935
  ids,
@@ -6480,9 +5964,9 @@ var handleClosingDetailSessionService = (env) => {
6480
5964
  };
6481
5965
 
6482
5966
  // src/services/pos-service/handle-closing-session.ts
6483
- var import_react36 = require("react");
5967
+ var import_react37 = require("react");
6484
5968
  var handleClosingSessionService = (env) => {
6485
- const handleClosingSession = (0, import_react36.useCallback)(
5969
+ const handleClosingSession = (0, import_react37.useCallback)(
6486
5970
  ({
6487
5971
  model,
6488
5972
  method,
@@ -6517,10 +6001,26 @@ var handleClosingSessionService = (env) => {
6517
6001
  };
6518
6002
 
6519
6003
  // src/services/pos-service/load-data-pos-session.ts
6520
- var import_react37 = require("react");
6004
+ var import_react38 = require("react");
6005
+ var MODEL_TO_TABLE = {
6006
+ ["account.tax" /* ACCOUNT_TAX */]: "account_taxes",
6007
+ ["res.company" /* RES_COMPANY */]: "companies",
6008
+ ["res.partner" /* RES_PARTNER */]: "customers",
6009
+ ["res.users" /* RES_USERS */]: "employees",
6010
+ ["loyalty.program" /* LOYALTY_PROGRAM */]: "loyalty_programs",
6011
+ ["loyalty.rule" /* LOYALTY_RULE */]: "loyalty_rules",
6012
+ ["pos.order.line" /* POS_ORDER_LINE */]: "order_lines",
6013
+ ["pos.order" /* POS_ORDER */]: "orders",
6014
+ ["pos.payment.method" /* POS_PAYMENT_METHOD */]: "payment_methods",
6015
+ ["pos.payment" /* POS_PAYMENT */]: "payments",
6016
+ ["product.category" /* PRODUCT_CATEGORY */]: "product_categories",
6017
+ ["product.product" /* PRODUCT_PRODUCT */]: "products",
6018
+ ["restaurant.floor" /* RESTAURANT_FLOOR */]: "restaurant_floors",
6019
+ ["restaurant.table" /* RESTAURANT_TABLE */]: "restaurant_tables"
6020
+ };
6521
6021
  var loadDataPosSessionService = (env) => {
6522
- const isLocalMode = env?.isLocalMode;
6523
- const loadDataPosSession = (0, import_react37.useCallback)(
6022
+ const supabase = useSupabaseOptional();
6023
+ const loadDataPosSession = (0, import_react38.useCallback)(
6524
6024
  async ({
6525
6025
  model,
6526
6026
  ids,
@@ -6530,10 +6030,6 @@ var loadDataPosSessionService = (env) => {
6530
6030
  modelsToLoad = [],
6531
6031
  searchParams
6532
6032
  }) => {
6533
- if (isLocalMode) {
6534
- const data = await loadData();
6535
- return data;
6536
- }
6537
6033
  const jsonData = {
6538
6034
  model,
6539
6035
  method: "load_data" /* LOAD_DATA */,
@@ -6560,17 +6056,74 @@ var loadDataPosSessionService = (env) => {
6560
6056
  service
6561
6057
  );
6562
6058
  },
6563
- [env, isLocalMode]
6059
+ [env]
6564
6060
  );
6061
+ const loadDataPosSessionSupabase = (0, import_react38.useCallback)(async () => {
6062
+ try {
6063
+ const allModels = Object.values(LoadDataModel);
6064
+ const promises = allModels.map(async (modelName) => {
6065
+ const tableName = MODEL_TO_TABLE[modelName];
6066
+ if (!tableName) {
6067
+ return {
6068
+ modelName,
6069
+ data: [],
6070
+ fields: {},
6071
+ relations: {}
6072
+ };
6073
+ }
6074
+ if (!supabase) {
6075
+ return {
6076
+ modelName,
6077
+ data: [],
6078
+ fields: {},
6079
+ relations: {}
6080
+ };
6081
+ }
6082
+ const { data, error } = await supabase.from(tableName).select("*");
6083
+ if (error) {
6084
+ console.error(`Error loading ${modelName}:`, error);
6085
+ return {
6086
+ modelName,
6087
+ data: [],
6088
+ fields: {},
6089
+ relations: {}
6090
+ };
6091
+ }
6092
+ return {
6093
+ modelName,
6094
+ data: data || [],
6095
+ fields: {},
6096
+ relations: {}
6097
+ };
6098
+ });
6099
+ const results = await Promise.all(promises);
6100
+ const response = results.reduce(
6101
+ (acc, { modelName, data, fields, relations }) => {
6102
+ acc[modelName] = {
6103
+ data,
6104
+ fields,
6105
+ relations
6106
+ };
6107
+ return acc;
6108
+ },
6109
+ {}
6110
+ );
6111
+ return response;
6112
+ } catch (error) {
6113
+ console.error("Error loading data from Supabase:", error);
6114
+ return {};
6115
+ }
6116
+ }, [supabase]);
6565
6117
  return {
6566
- loadDataPosSession
6118
+ loadDataPosSession,
6119
+ loadDataPosSessionSupabase
6567
6120
  };
6568
6121
  };
6569
6122
 
6570
6123
  // src/services/pos-service/manage-onchange.ts
6571
- var import_react38 = require("react");
6124
+ var import_react39 = require("react");
6572
6125
  var manageOnchangeService = (env) => {
6573
- const manageOnChange = (0, import_react38.useCallback)(
6126
+ const manageOnChange = (0, import_react39.useCallback)(
6574
6127
  ({
6575
6128
  model,
6576
6129
  ids,
@@ -6604,9 +6157,9 @@ var manageOnchangeService = (env) => {
6604
6157
  };
6605
6158
 
6606
6159
  // src/services/pos-service/manage-session.ts
6607
- var import_react39 = require("react");
6160
+ var import_react40 = require("react");
6608
6161
  var manageSessionService = (env) => {
6609
- const manageSession = (0, import_react39.useCallback)(
6162
+ const manageSession = (0, import_react40.useCallback)(
6610
6163
  ({
6611
6164
  model,
6612
6165
  method,
@@ -6643,9 +6196,9 @@ var manageSessionService = (env) => {
6643
6196
  };
6644
6197
 
6645
6198
  // src/services/pos-service/process-order.ts
6646
- var import_react40 = require("react");
6199
+ var import_react41 = require("react");
6647
6200
  var processOrderService = (env) => {
6648
- const processOrder = (0, import_react40.useCallback)(
6201
+ const processOrder = (0, import_react41.useCallback)(
6649
6202
  ({
6650
6203
  orderId,
6651
6204
  xNode,
@@ -6678,9 +6231,9 @@ var processOrderService = (env) => {
6678
6231
  };
6679
6232
 
6680
6233
  // src/services/pos-service/save-pin-code.ts
6681
- var import_react41 = require("react");
6234
+ var import_react42 = require("react");
6682
6235
  var savePinCodeService = (env) => {
6683
- const savePinCode = (0, import_react41.useCallback)(
6236
+ const savePinCode = (0, import_react42.useCallback)(
6684
6237
  ({
6685
6238
  serialNumber,
6686
6239
  pinCode,
@@ -6711,9 +6264,9 @@ var savePinCodeService = (env) => {
6711
6264
  };
6712
6265
 
6713
6266
  // src/services/pos-service/search-journal.ts
6714
- var import_react42 = require("react");
6267
+ var import_react43 = require("react");
6715
6268
  var searchJournalService = (env) => {
6716
- const searchJournal = (0, import_react42.useCallback)(
6269
+ const searchJournal = (0, import_react43.useCallback)(
6717
6270
  ({
6718
6271
  model,
6719
6272
  method,
@@ -6748,9 +6301,9 @@ var searchJournalService = (env) => {
6748
6301
  };
6749
6302
 
6750
6303
  // src/services/pos-service/update-closed-session.ts
6751
- var import_react43 = require("react");
6304
+ var import_react44 = require("react");
6752
6305
  var updateClosedSessionService = (env) => {
6753
- const updateClosedSession = (0, import_react43.useCallback)(
6306
+ const updateClosedSession = (0, import_react44.useCallback)(
6754
6307
  ({
6755
6308
  model,
6756
6309
  domain,
@@ -6783,11 +6336,9 @@ var updateClosedSessionService = (env) => {
6783
6336
  };
6784
6337
 
6785
6338
  // src/services/pos-service/update-entity.ts
6786
- var import_react44 = require("react");
6339
+ var import_react45 = require("react");
6787
6340
  var updateEntityService = (env) => {
6788
- const isLocalMode = env?.isLocalMode;
6789
- const repo = new ModelRepository();
6790
- const updateEntity = (0, import_react44.useCallback)(
6341
+ const updateEntity = (0, import_react45.useCallback)(
6791
6342
  ({
6792
6343
  model,
6793
6344
  domain,
@@ -6796,15 +6347,6 @@ var updateEntityService = (env) => {
6796
6347
  xNode,
6797
6348
  service
6798
6349
  }) => {
6799
- if (isLocalMode) {
6800
- const id = extractIdFromDomain(domain);
6801
- if (!id) return;
6802
- return repo.updateRecord({
6803
- update: values,
6804
- modelName: model,
6805
- id
6806
- });
6807
- }
6808
6350
  const jsonData = {
6809
6351
  model,
6810
6352
  domain,
@@ -6822,7 +6364,7 @@ var updateEntityService = (env) => {
6822
6364
  service
6823
6365
  );
6824
6366
  },
6825
- [env, isLocalMode]
6367
+ [env]
6826
6368
  );
6827
6369
  return {
6828
6370
  updateEntity
@@ -6830,9 +6372,9 @@ var updateEntityService = (env) => {
6830
6372
  };
6831
6373
 
6832
6374
  // src/services/pos-service/update-order-status.ts
6833
- var import_react45 = require("react");
6375
+ var import_react46 = require("react");
6834
6376
  var updateOrderStatusService = (env) => {
6835
- const updateOrderStatus = (0, import_react45.useCallback)(
6377
+ const updateOrderStatus = (0, import_react46.useCallback)(
6836
6378
  ({
6837
6379
  orderId,
6838
6380
  state,
@@ -6863,9 +6405,9 @@ var updateOrderStatusService = (env) => {
6863
6405
  };
6864
6406
 
6865
6407
  // src/services/pos-service/complete-current-stage.ts
6866
- var import_react46 = require("react");
6408
+ var import_react47 = require("react");
6867
6409
  var completeCurrentStageService = (env) => {
6868
- const completeCurrentStage = (0, import_react46.useCallback)(
6410
+ const completeCurrentStage = (0, import_react47.useCallback)(
6869
6411
  ({
6870
6412
  ids,
6871
6413
  withContext,
@@ -6948,50 +6490,6 @@ var usePosService = () => {
6948
6490
  return service;
6949
6491
  };
6950
6492
 
6951
- // src/services/filesystem-service/init-snapshot.ts
6952
- var isSnapshotReady = async () => {
6953
- try {
6954
- const raw = await fileService.read("pos/manifest.json");
6955
- if (!raw) return false;
6956
- const manifest = JSON.parse(raw);
6957
- if (!manifest.models || typeof manifest.models !== "object") {
6958
- return false;
6959
- }
6960
- const modelEntries = Object.values(manifest.models);
6961
- if (modelEntries.length === 0) return false;
6962
- const firstModel = modelEntries[0];
6963
- if (!firstModel.file) return false;
6964
- const modelExists = await fileService.exists(firstModel.file);
6965
- return modelExists;
6966
- } catch {
6967
- return false;
6968
- }
6969
- };
6970
- async function initSnapshot(onProgress) {
6971
- const ready = await isSnapshotReady();
6972
- if (ready) {
6973
- console.log("skip initialization.");
6974
- return;
6975
- }
6976
- console.log("initializing from data.json...");
6977
- const jsonData = await fetch("/data.json").then((r) => r.text());
6978
- if (!jsonData) {
6979
- console.error("cannot load data.json");
6980
- return;
6981
- }
6982
- await import_snapshot_default({
6983
- data: jsonData,
6984
- onProgress
6985
- });
6986
- }
6987
-
6988
- // src/services/filesystem-service/index.ts
6989
- var useFileSystemService = () => {
6990
- return {
6991
- initSnapshot
6992
- };
6993
- };
6994
-
6995
6493
  // src/hooks/auth/use-forgot-password.ts
6996
6494
  var useForgotPassword = () => {
6997
6495
  const { forgotPassword } = useAuthService();
@@ -7861,9 +7359,9 @@ var BaseModel = class {
7861
7359
  };
7862
7360
 
7863
7361
  // src/hooks/model/use-model.ts
7864
- var import_react47 = require("react");
7362
+ var import_react48 = require("react");
7865
7363
  var useModel = () => {
7866
- const initModel = (0, import_react47.useCallback)((modelData) => {
7364
+ const initModel = (0, import_react48.useCallback)((modelData) => {
7867
7365
  switch (modelData?.name) {
7868
7366
  default:
7869
7367
  return new BaseModel(modelData);
@@ -8880,8 +8378,9 @@ var use_handle_closing_session_default = useHandleClosingSession;
8880
8378
  var import_react_query104 = require("@tanstack/react-query");
8881
8379
  var useLoadDataPosSession = () => {
8882
8380
  const pos = usePosService();
8381
+ const { env } = useEnv();
8883
8382
  return (0, import_react_query104.useMutation)({
8884
- mutationFn: pos.loadDataPosSession
8383
+ mutationFn: env.isSupaMode ? pos.loadDataPosSessionSupabase : pos.loadDataPosSession
8885
8384
  });
8886
8385
  };
8887
8386
  var use_load_data_pos_session_default = useLoadDataPosSession;
@@ -8966,21 +8465,11 @@ var useUpdateOrderStatus = () => {
8966
8465
  };
8967
8466
  var use_update_order_status_default = useUpdateOrderStatus;
8968
8467
 
8969
- // src/hooks/pos/use-init-snapshot.ts
8970
- var import_react_query113 = require("@tanstack/react-query");
8971
- var useInitSnapshot = () => {
8972
- const fileSystem = useFileSystemService();
8973
- return (0, import_react_query113.useMutation)({
8974
- mutationFn: fileSystem.initSnapshot
8975
- });
8976
- };
8977
- var use_init_snapshot_default = useInitSnapshot;
8978
-
8979
8468
  // src/hooks/pos/use-complete-current-stage.ts
8980
- var import_react_query114 = require("@tanstack/react-query");
8469
+ var import_react_query113 = require("@tanstack/react-query");
8981
8470
  var useCompleteCurrentStage = () => {
8982
8471
  const pos = usePosService();
8983
- return (0, import_react_query114.useMutation)({
8472
+ return (0, import_react_query113.useMutation)({
8984
8473
  mutationFn: pos.completeCurrentStage
8985
8474
  });
8986
8475
  };
@@ -9060,7 +8549,6 @@ var use_complete_current_stage_default = useCompleteCurrentStage;
9060
8549
  useHandleCloseSession,
9061
8550
  useHandleClosingDetailSession,
9062
8551
  useHandleClosingSession,
9063
- useInitSnapshot,
9064
8552
  useIsValidToken,
9065
8553
  useLoadAction,
9066
8554
  useLoadDataPosSession,