@fctc/interface-logic 4.7.8 → 4.7.9

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.d.mts CHANGED
@@ -870,4 +870,21 @@ declare const useDeleteOrderLine: () => _tanstack_react_query.UseMutationResult<
870
870
  line_id: number;
871
871
  }, unknown>;
872
872
 
873
- export { useAddCategory, useAddEntity, useAddFloor, useAddProductToOrder, useAddTable, useButton, useChangeOrderPreparationState, useChangeStatus, useCheckPayment, useCompleteCurrentStage, useCreateEInvoice, useCreateEntity, useCreateOrder, useCreatePosConfig, useCreateSession, useDelete, useDeleteComment, useDeleteEntity, useDeleteFloor, useDeleteOrder, useDeleteOrderLine, useDeleteTable, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGenSerialNumber, useGeneratePaymentQrInfo, useGet2FAMethods, useGetASession, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetCity, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCountry, useGetCurrency, useGetCurrentCompany, useGetCurrentUser, useGetDataChart, useGetDetail, useGetExternalTabs, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetList, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetNotifications, useGetOrderLine, useGetPartnerTitle, useGetPinCode, useGetPos, useGetPreparationDisplayData, useGetPrintReport, useGetProGressBar, useGetProductImage, useGetProfile, useGetProvider, useGetResequence, useGetSelection, useGetTenantMapping, useGetThreadData, useGetThreadMessages, useGetToken, useGetUser, useGetVersion, useGetView, useGetWard, useGrantAccess, useHandleCloseSession, useHandleClosingDetailSession, useHandleClosingSession, useIsValidToken, useLoadAction, useLoadDataPosSession, useLoadMessage, useLoginCredential, useLoginSocial, useLoginSupa, useLogout, useManageOnChange, useManageSession, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useProcessOrder, useReadGroup, useRemoveRow, useRemoveTotpSetup, useRequestSetupTotp, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSavePinCode, useSearchJournal, useSendComment, useSettingsWebRead2fa, useSignInSSO, useSwitchLocale, useUpdateClosedSession, useUpdateEntity, useUpdateFloor, useUpdateOrder, useUpdateOrderLine, useUpdateOrderStatus, useUpdateOrderTotalAmount, useUpdatePassword, useUpdateTable, useUploadFile, useUploadFileExcel, useUploadIdFile, useUploadImage, useValidateActionToken, useVerify2FA, useVerifyTotp };
873
+ declare const useAddProduct: () => _tanstack_react_query.UseMutationResult<[number, string][] | null, Error, {
874
+ name: string;
875
+ product_tmpl_id?: number;
876
+ product_template_variant_value_ids?: number[];
877
+ combo_ids?: number[];
878
+ categ_id?: number;
879
+ pos_categ_ids?: number[];
880
+ display_name?: string;
881
+ default_code?: string;
882
+ description_sale?: string;
883
+ lst_price?: number;
884
+ standard_price?: number;
885
+ barcode?: string;
886
+ image_url?: string;
887
+ active?: boolean;
888
+ }, unknown>;
889
+
890
+ export { useAddCategory, useAddEntity, useAddFloor, useAddProduct, useAddProductToOrder, useAddTable, useButton, useChangeOrderPreparationState, useChangeStatus, useCheckPayment, useCompleteCurrentStage, useCreateEInvoice, useCreateEntity, useCreateOrder, useCreatePosConfig, useCreateSession, useDelete, useDeleteComment, useDeleteEntity, useDeleteFloor, useDeleteOrder, useDeleteOrderLine, useDeleteTable, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGenSerialNumber, useGeneratePaymentQrInfo, useGet2FAMethods, useGetASession, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetCity, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCountry, useGetCurrency, useGetCurrentCompany, useGetCurrentUser, useGetDataChart, useGetDetail, useGetExternalTabs, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetList, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetNotifications, useGetOrderLine, useGetPartnerTitle, useGetPinCode, useGetPos, useGetPreparationDisplayData, useGetPrintReport, useGetProGressBar, useGetProductImage, useGetProfile, useGetProvider, useGetResequence, useGetSelection, useGetTenantMapping, useGetThreadData, useGetThreadMessages, useGetToken, useGetUser, useGetVersion, useGetView, useGetWard, useGrantAccess, useHandleCloseSession, useHandleClosingDetailSession, useHandleClosingSession, useIsValidToken, useLoadAction, useLoadDataPosSession, useLoadMessage, useLoginCredential, useLoginSocial, useLoginSupa, useLogout, useManageOnChange, useManageSession, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useProcessOrder, useReadGroup, useRemoveRow, useRemoveTotpSetup, useRequestSetupTotp, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSavePinCode, useSearchJournal, useSendComment, useSettingsWebRead2fa, useSignInSSO, useSwitchLocale, useUpdateClosedSession, useUpdateEntity, useUpdateFloor, useUpdateOrder, useUpdateOrderLine, useUpdateOrderStatus, useUpdateOrderTotalAmount, useUpdatePassword, useUpdateTable, useUploadFile, useUploadFileExcel, useUploadIdFile, useUploadImage, useValidateActionToken, useVerify2FA, useVerifyTotp };
package/dist/hooks.d.ts CHANGED
@@ -870,4 +870,21 @@ declare const useDeleteOrderLine: () => _tanstack_react_query.UseMutationResult<
870
870
  line_id: number;
871
871
  }, unknown>;
872
872
 
873
- export { useAddCategory, useAddEntity, useAddFloor, useAddProductToOrder, useAddTable, useButton, useChangeOrderPreparationState, useChangeStatus, useCheckPayment, useCompleteCurrentStage, useCreateEInvoice, useCreateEntity, useCreateOrder, useCreatePosConfig, useCreateSession, useDelete, useDeleteComment, useDeleteEntity, useDeleteFloor, useDeleteOrder, useDeleteOrderLine, useDeleteTable, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGenSerialNumber, useGeneratePaymentQrInfo, useGet2FAMethods, useGetASession, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetCity, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCountry, useGetCurrency, useGetCurrentCompany, useGetCurrentUser, useGetDataChart, useGetDetail, useGetExternalTabs, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetList, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetNotifications, useGetOrderLine, useGetPartnerTitle, useGetPinCode, useGetPos, useGetPreparationDisplayData, useGetPrintReport, useGetProGressBar, useGetProductImage, useGetProfile, useGetProvider, useGetResequence, useGetSelection, useGetTenantMapping, useGetThreadData, useGetThreadMessages, useGetToken, useGetUser, useGetVersion, useGetView, useGetWard, useGrantAccess, useHandleCloseSession, useHandleClosingDetailSession, useHandleClosingSession, useIsValidToken, useLoadAction, useLoadDataPosSession, useLoadMessage, useLoginCredential, useLoginSocial, useLoginSupa, useLogout, useManageOnChange, useManageSession, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useProcessOrder, useReadGroup, useRemoveRow, useRemoveTotpSetup, useRequestSetupTotp, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSavePinCode, useSearchJournal, useSendComment, useSettingsWebRead2fa, useSignInSSO, useSwitchLocale, useUpdateClosedSession, useUpdateEntity, useUpdateFloor, useUpdateOrder, useUpdateOrderLine, useUpdateOrderStatus, useUpdateOrderTotalAmount, useUpdatePassword, useUpdateTable, useUploadFile, useUploadFileExcel, useUploadIdFile, useUploadImage, useValidateActionToken, useVerify2FA, useVerifyTotp };
873
+ declare const useAddProduct: () => _tanstack_react_query.UseMutationResult<[number, string][] | null, Error, {
874
+ name: string;
875
+ product_tmpl_id?: number;
876
+ product_template_variant_value_ids?: number[];
877
+ combo_ids?: number[];
878
+ categ_id?: number;
879
+ pos_categ_ids?: number[];
880
+ display_name?: string;
881
+ default_code?: string;
882
+ description_sale?: string;
883
+ lst_price?: number;
884
+ standard_price?: number;
885
+ barcode?: string;
886
+ image_url?: string;
887
+ active?: boolean;
888
+ }, unknown>;
889
+
890
+ export { useAddCategory, useAddEntity, useAddFloor, useAddProduct, useAddProductToOrder, useAddTable, useButton, useChangeOrderPreparationState, useChangeStatus, useCheckPayment, useCompleteCurrentStage, useCreateEInvoice, useCreateEntity, useCreateOrder, useCreatePosConfig, useCreateSession, useDelete, useDeleteComment, useDeleteEntity, useDeleteFloor, useDeleteOrder, useDeleteOrderLine, useDeleteTable, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGenSerialNumber, useGeneratePaymentQrInfo, useGet2FAMethods, useGetASession, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetCity, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCountry, useGetCurrency, useGetCurrentCompany, useGetCurrentUser, useGetDataChart, useGetDetail, useGetExternalTabs, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetList, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetNotifications, useGetOrderLine, useGetPartnerTitle, useGetPinCode, useGetPos, useGetPreparationDisplayData, useGetPrintReport, useGetProGressBar, useGetProductImage, useGetProfile, useGetProvider, useGetResequence, useGetSelection, useGetTenantMapping, useGetThreadData, useGetThreadMessages, useGetToken, useGetUser, useGetVersion, useGetView, useGetWard, useGrantAccess, useHandleCloseSession, useHandleClosingDetailSession, useHandleClosingSession, useIsValidToken, useLoadAction, useLoadDataPosSession, useLoadMessage, useLoginCredential, useLoginSocial, useLoginSupa, useLogout, useManageOnChange, useManageSession, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useProcessOrder, useReadGroup, useRemoveRow, useRemoveTotpSetup, useRequestSetupTotp, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSavePinCode, useSearchJournal, useSendComment, useSettingsWebRead2fa, useSignInSSO, useSwitchLocale, useUpdateClosedSession, useUpdateEntity, useUpdateFloor, useUpdateOrder, useUpdateOrderLine, useUpdateOrderStatus, useUpdateOrderTotalAmount, useUpdatePassword, useUpdateTable, useUploadFile, useUploadFileExcel, useUploadIdFile, useUploadImage, useValidateActionToken, useVerify2FA, useVerifyTotp };
package/dist/hooks.js CHANGED
@@ -33,6 +33,7 @@ __export(hooks_exports, {
33
33
  useAddCategory: () => use_add_category_default,
34
34
  useAddEntity: () => use_add_entity_default,
35
35
  useAddFloor: () => use_add_floor_default,
36
+ useAddProduct: () => use_add_product_default,
36
37
  useAddProductToOrder: () => use_add_product_to_order_default,
37
38
  useAddTable: () => use_add_table_default,
38
39
  useButton: () => use_button_default,
@@ -6927,6 +6928,53 @@ var addCategorySupabaseService = () => {
6927
6928
  };
6928
6929
  };
6929
6930
 
6931
+ // src/services/pos-service/supabase/add-product.ts
6932
+ var import_react62 = require("react");
6933
+ var addProductSupabaseService = () => {
6934
+ const supabase = useSupabaseOptional();
6935
+ const addProductSupabase = (0, import_react62.useCallback)(
6936
+ async (values) => {
6937
+ if (!supabase) {
6938
+ console.error("Supabase client not initialized");
6939
+ return null;
6940
+ }
6941
+ const insertData = Object.fromEntries(
6942
+ Object.entries({
6943
+ name: values.name,
6944
+ product_tmpl_id: values.product_tmpl_id,
6945
+ product_template_variant_value_ids: values.product_template_variant_value_ids ?? [],
6946
+ combo_ids: values.combo_ids ?? [],
6947
+ categ_id: values.categ_id,
6948
+ pos_categ_ids: values.pos_categ_ids ?? [],
6949
+ display_name: values.display_name || values.name,
6950
+ default_code: values.default_code ?? "",
6951
+ description_sale: values.description_sale ?? "",
6952
+ lst_price: values.lst_price ?? 0,
6953
+ standard_price: values.standard_price ?? 0,
6954
+ barcode: values.barcode ?? "",
6955
+ image_url: values.image_url ?? "",
6956
+ active: values.active ?? true
6957
+ }).filter(([_, v]) => v !== void 0)
6958
+ );
6959
+ try {
6960
+ const { data, error } = await supabase.from("products" /* PRODUCTS */).insert(insertData).select("id, name").single();
6961
+ if (error) {
6962
+ console.error("Error adding product:", error);
6963
+ return null;
6964
+ }
6965
+ return [[data.id, data.name]];
6966
+ } catch (error) {
6967
+ console.error("Error adding product:", error);
6968
+ return null;
6969
+ }
6970
+ },
6971
+ [supabase]
6972
+ );
6973
+ return {
6974
+ addProductSupabase
6975
+ };
6976
+ };
6977
+
6930
6978
  // src/services/pos-service/index.ts
6931
6979
  var serviceFactories = [
6932
6980
  addEntityService,
@@ -6972,7 +7020,8 @@ var serviceFactories = [
6972
7020
  updateOrderLineSupabaseService,
6973
7021
  updateOrderSupabaseService,
6974
7022
  deleteOrderSupabaseService,
6975
- deleteOrderLineSupabaseService
7023
+ deleteOrderLineSupabaseService,
7024
+ addProductSupabaseService
6976
7025
  ];
6977
7026
  var usePosService = () => {
6978
7027
  const { env } = useEnv();
@@ -7868,9 +7917,9 @@ var BaseModel = class {
7868
7917
  };
7869
7918
 
7870
7919
  // src/hooks/model/use-model.ts
7871
- var import_react62 = require("react");
7920
+ var import_react63 = require("react");
7872
7921
  var useModel = () => {
7873
- const initModel = (0, import_react62.useCallback)((modelData) => {
7922
+ const initModel = (0, import_react63.useCallback)((modelData) => {
7874
7923
  switch (modelData?.name) {
7875
7924
  default:
7876
7925
  return new BaseModel(modelData);
@@ -9123,11 +9172,22 @@ var useDeleteOrderLine = () => {
9123
9172
  });
9124
9173
  };
9125
9174
  var use_delete_order_line_default = useDeleteOrderLine;
9175
+
9176
+ // src/hooks/pos/supabase/use-add-product.ts
9177
+ var import_react_query129 = require("@tanstack/react-query");
9178
+ var useAddProduct = () => {
9179
+ const { addProductSupabase } = addProductSupabaseService();
9180
+ return (0, import_react_query129.useMutation)({
9181
+ mutationFn: addProductSupabase
9182
+ });
9183
+ };
9184
+ var use_add_product_default = useAddProduct;
9126
9185
  // Annotate the CommonJS export names for ESM import in node:
9127
9186
  0 && (module.exports = {
9128
9187
  useAddCategory,
9129
9188
  useAddEntity,
9130
9189
  useAddFloor,
9190
+ useAddProduct,
9131
9191
  useAddProductToOrder,
9132
9192
  useAddTable,
9133
9193
  useButton,
package/dist/hooks.mjs CHANGED
@@ -6764,6 +6764,53 @@ var addCategorySupabaseService = () => {
6764
6764
  };
6765
6765
  };
6766
6766
 
6767
+ // src/services/pos-service/supabase/add-product.ts
6768
+ import { useCallback as useCallback56 } from "react";
6769
+ var addProductSupabaseService = () => {
6770
+ const supabase = useSupabaseOptional();
6771
+ const addProductSupabase = useCallback56(
6772
+ async (values) => {
6773
+ if (!supabase) {
6774
+ console.error("Supabase client not initialized");
6775
+ return null;
6776
+ }
6777
+ const insertData = Object.fromEntries(
6778
+ Object.entries({
6779
+ name: values.name,
6780
+ product_tmpl_id: values.product_tmpl_id,
6781
+ product_template_variant_value_ids: values.product_template_variant_value_ids ?? [],
6782
+ combo_ids: values.combo_ids ?? [],
6783
+ categ_id: values.categ_id,
6784
+ pos_categ_ids: values.pos_categ_ids ?? [],
6785
+ display_name: values.display_name || values.name,
6786
+ default_code: values.default_code ?? "",
6787
+ description_sale: values.description_sale ?? "",
6788
+ lst_price: values.lst_price ?? 0,
6789
+ standard_price: values.standard_price ?? 0,
6790
+ barcode: values.barcode ?? "",
6791
+ image_url: values.image_url ?? "",
6792
+ active: values.active ?? true
6793
+ }).filter(([_, v]) => v !== void 0)
6794
+ );
6795
+ try {
6796
+ const { data, error } = await supabase.from("products" /* PRODUCTS */).insert(insertData).select("id, name").single();
6797
+ if (error) {
6798
+ console.error("Error adding product:", error);
6799
+ return null;
6800
+ }
6801
+ return [[data.id, data.name]];
6802
+ } catch (error) {
6803
+ console.error("Error adding product:", error);
6804
+ return null;
6805
+ }
6806
+ },
6807
+ [supabase]
6808
+ );
6809
+ return {
6810
+ addProductSupabase
6811
+ };
6812
+ };
6813
+
6767
6814
  // src/services/pos-service/index.ts
6768
6815
  var serviceFactories = [
6769
6816
  addEntityService,
@@ -6809,7 +6856,8 @@ var serviceFactories = [
6809
6856
  updateOrderLineSupabaseService,
6810
6857
  updateOrderSupabaseService,
6811
6858
  deleteOrderSupabaseService,
6812
- deleteOrderLineSupabaseService
6859
+ deleteOrderLineSupabaseService,
6860
+ addProductSupabaseService
6813
6861
  ];
6814
6862
  var usePosService = () => {
6815
6863
  const { env } = useEnv();
@@ -7705,9 +7753,9 @@ var BaseModel = class {
7705
7753
  };
7706
7754
 
7707
7755
  // src/hooks/model/use-model.ts
7708
- import { useCallback as useCallback56 } from "react";
7756
+ import { useCallback as useCallback57 } from "react";
7709
7757
  var useModel = () => {
7710
- const initModel = useCallback56((modelData) => {
7758
+ const initModel = useCallback57((modelData) => {
7711
7759
  switch (modelData?.name) {
7712
7760
  default:
7713
7761
  return new BaseModel(modelData);
@@ -8960,10 +9008,21 @@ var useDeleteOrderLine = () => {
8960
9008
  });
8961
9009
  };
8962
9010
  var use_delete_order_line_default = useDeleteOrderLine;
9011
+
9012
+ // src/hooks/pos/supabase/use-add-product.ts
9013
+ import { useMutation as useMutation102 } from "@tanstack/react-query";
9014
+ var useAddProduct = () => {
9015
+ const { addProductSupabase } = addProductSupabaseService();
9016
+ return useMutation102({
9017
+ mutationFn: addProductSupabase
9018
+ });
9019
+ };
9020
+ var use_add_product_default = useAddProduct;
8963
9021
  export {
8964
9022
  use_add_category_default as useAddCategory,
8965
9023
  use_add_entity_default as useAddEntity,
8966
9024
  use_add_floor_default as useAddFloor,
9025
+ use_add_product_default as useAddProduct,
8967
9026
  use_add_product_to_order_default as useAddProductToOrder,
8968
9027
  use_add_table_default as useAddTable,
8969
9028
  use_button_default as useButton,
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React$1, { ReactNode } from 'react';
3
3
  import { L as LocalStorageUtilsType } from './local-storage-BPvoMGYJ.mjs';
4
- import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetFormView, useGetImage, useSendComment, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useUploadFile, useCreateEntity, useGetASession, useCreateSession, useDeleteEntity, useGetList, useGetPos, useHandleClosingSession, useManageSession, useUpdateClosedSession, useUpdateEntity, useLoadDataPosSession, useManageOnChange, useGenSerialNumber, useGetOrderLine, useGetProductImage, useAddEntity, useCheckPayment, useHandleCloseSession, useHandleClosingDetailSession, useCreatePosConfig, useSearchJournal, useGetTenantMapping, useGetToken, useGetPreparationDisplayData, useUpdateOrderStatus, useGetThreadData, useGetThreadMessages, useGetExternalTabs, useProcessOrder, useGeneratePaymentQrInfo, useSavePinCode, useGetPinCode, useReadGroup, useGetNotifications, useGetDataChart, useGetVersion, useCreateEInvoice, useGetCurrentUser, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useChangeOrderPreparationState, useCompleteCurrentStage, useLoginSupa, useAddFloor, useAddTable, useDeleteFloor, useDeleteTable, useUpdateFloor, useUpdateTable, useCreateOrder, useAddCategory, useAddProductToOrder, useUpdateOrderTotalAmount, useUpdateOrderLine, useUpdateOrder, useDeleteOrder, useDeleteOrderLine } from './hooks.mjs';
4
+ import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetFormView, useGetImage, useSendComment, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useUploadFile, useCreateEntity, useGetASession, useCreateSession, useDeleteEntity, useGetList, useGetPos, useHandleClosingSession, useManageSession, useUpdateClosedSession, useUpdateEntity, useLoadDataPosSession, useManageOnChange, useGenSerialNumber, useGetOrderLine, useGetProductImage, useAddEntity, useCheckPayment, useHandleCloseSession, useHandleClosingDetailSession, useCreatePosConfig, useSearchJournal, useGetTenantMapping, useGetToken, useGetPreparationDisplayData, useUpdateOrderStatus, useGetThreadData, useGetThreadMessages, useGetExternalTabs, useProcessOrder, useGeneratePaymentQrInfo, useSavePinCode, useGetPinCode, useReadGroup, useGetNotifications, useGetDataChart, useGetVersion, useCreateEInvoice, useGetCurrentUser, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useChangeOrderPreparationState, useCompleteCurrentStage, useLoginSupa, useAddFloor, useAddTable, useDeleteFloor, useDeleteTable, useUpdateFloor, useUpdateTable, useCreateOrder, useAddCategory, useAddProductToOrder, useUpdateOrderTotalAmount, useUpdateOrderLine, useUpdateOrder, useDeleteOrder, useDeleteOrderLine, useAddProduct } from './hooks.mjs';
5
5
  import { SupabaseClient } from '@supabase/supabase-js';
6
6
  import '@tanstack/react-query';
7
7
  import './view-type-CfcWWR0w.mjs';
@@ -198,6 +198,7 @@ interface ServiceContextType {
198
198
  useUpdateOrder: typeof useUpdateOrder;
199
199
  useDeleteOrder: typeof useDeleteOrder;
200
200
  useDeleteOrderLine: typeof useDeleteOrderLine;
201
+ useAddProduct: typeof useAddProduct;
201
202
  }
202
203
  declare const ServiceProvider: ({ children, }: {
203
204
  children: React.ReactNode;
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React$1, { ReactNode } from 'react';
3
3
  import { L as LocalStorageUtilsType } from './local-storage-BPvoMGYJ.js';
4
- import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetFormView, useGetImage, useSendComment, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useUploadFile, useCreateEntity, useGetASession, useCreateSession, useDeleteEntity, useGetList, useGetPos, useHandleClosingSession, useManageSession, useUpdateClosedSession, useUpdateEntity, useLoadDataPosSession, useManageOnChange, useGenSerialNumber, useGetOrderLine, useGetProductImage, useAddEntity, useCheckPayment, useHandleCloseSession, useHandleClosingDetailSession, useCreatePosConfig, useSearchJournal, useGetTenantMapping, useGetToken, useGetPreparationDisplayData, useUpdateOrderStatus, useGetThreadData, useGetThreadMessages, useGetExternalTabs, useProcessOrder, useGeneratePaymentQrInfo, useSavePinCode, useGetPinCode, useReadGroup, useGetNotifications, useGetDataChart, useGetVersion, useCreateEInvoice, useGetCurrentUser, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useChangeOrderPreparationState, useCompleteCurrentStage, useLoginSupa, useAddFloor, useAddTable, useDeleteFloor, useDeleteTable, useUpdateFloor, useUpdateTable, useCreateOrder, useAddCategory, useAddProductToOrder, useUpdateOrderTotalAmount, useUpdateOrderLine, useUpdateOrder, useDeleteOrder, useDeleteOrderLine } from './hooks.js';
4
+ import { useForgotPassword, useForgotPasswordSSO, useGetProvider, useIsValidToken, useLoginCredential, useLoginSocial, useResetPassword, useResetPasswordSSO, useUpdatePassword, useLogout, useGetAccessByCode, useValidateActionToken, useGetCompanyInfo, useGetCurrentCompany, useGetListCompany, useExecuteImport, useExportExcel, useGetFieldExport, useGetFileExcel, useParsePreview, useUploadFileExcel, useUploadIdFile, useChangeStatus, useDeleteComment, useGetComment, useGetFormView, useGetImage, useSendComment, useUploadImage, useDelete, useGetAll, useGetConversionRate, useGetCurrency, useGetDetail, useGetFieldOnChange, useGetListMyBankAccount, useModel, useOdooDataTransform, useOnChangeForm, useSave, useGetProfile, useGetUser, useSwitchLocale, useButton, useDuplicateRecord, useGet2FAMethods, useGetActionDetail, useGetCalendar, useGetGroups, useGetListData, useGetMenu, useGetPrintReport, useGetProGressBar, useGetResequence, useGetSelection, useGetView, useLoadAction, useLoadMessage, usePrint, useRemoveRow, useRunAction, useSignInSSO, useVerify2FA, useGrantAccess, useRemoveTotpSetup, useRequestSetupTotp, useSettingsWebRead2fa, useVerifyTotp, useUploadFile, useCreateEntity, useGetASession, useCreateSession, useDeleteEntity, useGetList, useGetPos, useHandleClosingSession, useManageSession, useUpdateClosedSession, useUpdateEntity, useLoadDataPosSession, useManageOnChange, useGenSerialNumber, useGetOrderLine, useGetProductImage, useAddEntity, useCheckPayment, useHandleCloseSession, useHandleClosingDetailSession, useCreatePosConfig, useSearchJournal, useGetTenantMapping, useGetToken, useGetPreparationDisplayData, useUpdateOrderStatus, useGetThreadData, useGetThreadMessages, useGetExternalTabs, useProcessOrder, useGeneratePaymentQrInfo, useSavePinCode, useGetPinCode, useReadGroup, useGetNotifications, useGetDataChart, useGetVersion, useCreateEInvoice, useGetCurrentUser, useGetWard, useGetCity, useGetCountry, useGetPartnerTitle, useChangeOrderPreparationState, useCompleteCurrentStage, useLoginSupa, useAddFloor, useAddTable, useDeleteFloor, useDeleteTable, useUpdateFloor, useUpdateTable, useCreateOrder, useAddCategory, useAddProductToOrder, useUpdateOrderTotalAmount, useUpdateOrderLine, useUpdateOrder, useDeleteOrder, useDeleteOrderLine, useAddProduct } from './hooks.js';
5
5
  import { SupabaseClient } from '@supabase/supabase-js';
6
6
  import '@tanstack/react-query';
7
7
  import './view-type-CfcWWR0w.js';
@@ -198,6 +198,7 @@ interface ServiceContextType {
198
198
  useUpdateOrder: typeof useUpdateOrder;
199
199
  useDeleteOrder: typeof useDeleteOrder;
200
200
  useDeleteOrderLine: typeof useDeleteOrderLine;
201
+ useAddProduct: typeof useAddProduct;
201
202
  }
202
203
  declare const ServiceProvider: ({ children, }: {
203
204
  children: React.ReactNode;
package/dist/provider.js CHANGED
@@ -700,7 +700,7 @@ var MainProvider = ({ children }) => {
700
700
  };
701
701
 
702
702
  // src/provider/version-gate-provider.tsx
703
- var import_react58 = require("react");
703
+ var import_react59 = require("react");
704
704
  var import_react_query2 = require("@tanstack/react-query");
705
705
 
706
706
  // src/services/action-service/index.ts
@@ -6925,6 +6925,53 @@ var addCategorySupabaseService = () => {
6925
6925
  };
6926
6926
  };
6927
6927
 
6928
+ // src/services/pos-service/supabase/add-product.ts
6929
+ var import_react58 = require("react");
6930
+ var addProductSupabaseService = () => {
6931
+ const supabase = useSupabaseOptional();
6932
+ const addProductSupabase = (0, import_react58.useCallback)(
6933
+ async (values) => {
6934
+ if (!supabase) {
6935
+ console.error("Supabase client not initialized");
6936
+ return null;
6937
+ }
6938
+ const insertData = Object.fromEntries(
6939
+ Object.entries({
6940
+ name: values.name,
6941
+ product_tmpl_id: values.product_tmpl_id,
6942
+ product_template_variant_value_ids: values.product_template_variant_value_ids ?? [],
6943
+ combo_ids: values.combo_ids ?? [],
6944
+ categ_id: values.categ_id,
6945
+ pos_categ_ids: values.pos_categ_ids ?? [],
6946
+ display_name: values.display_name || values.name,
6947
+ default_code: values.default_code ?? "",
6948
+ description_sale: values.description_sale ?? "",
6949
+ lst_price: values.lst_price ?? 0,
6950
+ standard_price: values.standard_price ?? 0,
6951
+ barcode: values.barcode ?? "",
6952
+ image_url: values.image_url ?? "",
6953
+ active: values.active ?? true
6954
+ }).filter(([_, v]) => v !== void 0)
6955
+ );
6956
+ try {
6957
+ const { data, error } = await supabase.from("products" /* PRODUCTS */).insert(insertData).select("id, name").single();
6958
+ if (error) {
6959
+ console.error("Error adding product:", error);
6960
+ return null;
6961
+ }
6962
+ return [[data.id, data.name]];
6963
+ } catch (error) {
6964
+ console.error("Error adding product:", error);
6965
+ return null;
6966
+ }
6967
+ },
6968
+ [supabase]
6969
+ );
6970
+ return {
6971
+ addProductSupabase
6972
+ };
6973
+ };
6974
+
6928
6975
  // src/services/pos-service/index.ts
6929
6976
  var serviceFactories = [
6930
6977
  addEntityService,
@@ -6970,7 +7017,8 @@ var serviceFactories = [
6970
7017
  updateOrderLineSupabaseService,
6971
7018
  updateOrderSupabaseService,
6972
7019
  deleteOrderSupabaseService,
6973
- deleteOrderLineSupabaseService
7020
+ deleteOrderLineSupabaseService,
7021
+ addProductSupabaseService
6974
7022
  ];
6975
7023
  var usePosService = () => {
6976
7024
  const { env } = useEnv();
@@ -6986,9 +7034,9 @@ var usePosService = () => {
6986
7034
  var import_jsx_runtime5 = require("react/jsx-runtime");
6987
7035
  var VersionGate = ({ children }) => {
6988
7036
  const queryClient = (0, import_react_query2.useQueryClient)();
6989
- const [ready, setReady] = (0, import_react58.useState)(false);
7037
+ const [ready, setReady] = (0, import_react59.useState)(false);
6990
7038
  const { getVersion } = useViewService();
6991
- (0, import_react58.useEffect)(() => {
7039
+ (0, import_react59.useEffect)(() => {
6992
7040
  const clearVersion = () => {
6993
7041
  queryClient.clear();
6994
7042
  localStorage.removeItem("__api_version__");
@@ -7019,7 +7067,7 @@ var VersionGate = ({ children }) => {
7019
7067
  };
7020
7068
 
7021
7069
  // src/provider/env-provider.tsx
7022
- var import_react59 = require("react");
7070
+ var import_react60 = require("react");
7023
7071
 
7024
7072
  // src/configs/axios-client.ts
7025
7073
  var import_axios = __toESM(require("axios"));
@@ -7372,18 +7420,18 @@ var initialEnvState = {
7372
7420
  excludeLanguages: [],
7373
7421
  isSupaMode: false
7374
7422
  };
7375
- var EnvContext = (0, import_react59.createContext)(null);
7423
+ var EnvContext = (0, import_react60.createContext)(null);
7376
7424
  function EnvProvider({
7377
7425
  children,
7378
7426
  localStorageUtils: localStorageUtil = localStorageUtils(),
7379
7427
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils
7380
7428
  }) {
7381
- const [env, setEnvState] = (0, import_react59.useState)({
7429
+ const [env, setEnvState] = (0, import_react60.useState)({
7382
7430
  ...initialEnvState,
7383
7431
  localStorageUtils: localStorageUtil,
7384
7432
  sessionStorageUtils: sessionStorageUtil
7385
7433
  });
7386
- const setupEnv = (0, import_react59.useCallback)(
7434
+ const setupEnv = (0, import_react60.useCallback)(
7387
7435
  (envConfig) => {
7388
7436
  const updatedEnv = {
7389
7437
  ...env,
@@ -7397,31 +7445,31 @@ function EnvProvider({
7397
7445
  },
7398
7446
  [env, localStorageUtil, sessionStorageUtil]
7399
7447
  );
7400
- const setUid2 = (0, import_react59.useCallback)((uid) => {
7448
+ const setUid2 = (0, import_react60.useCallback)((uid) => {
7401
7449
  setEnvState((prev) => ({
7402
7450
  ...prev,
7403
7451
  context: { ...prev.context, uid }
7404
7452
  }));
7405
7453
  }, []);
7406
- const setLang2 = (0, import_react59.useCallback)((lang) => {
7454
+ const setLang2 = (0, import_react60.useCallback)((lang) => {
7407
7455
  setEnvState((prev) => ({
7408
7456
  ...prev,
7409
7457
  context: { ...prev.context, lang }
7410
7458
  }));
7411
7459
  }, []);
7412
- const setAllowCompanies2 = (0, import_react59.useCallback)((allowed_company_ids) => {
7460
+ const setAllowCompanies2 = (0, import_react60.useCallback)((allowed_company_ids) => {
7413
7461
  setEnvState((prev) => ({
7414
7462
  ...prev,
7415
7463
  context: { ...prev.context, allowed_company_ids }
7416
7464
  }));
7417
7465
  }, []);
7418
- const setCompanies2 = (0, import_react59.useCallback)((companies) => {
7466
+ const setCompanies2 = (0, import_react60.useCallback)((companies) => {
7419
7467
  setEnvState((prev) => ({
7420
7468
  ...prev,
7421
7469
  companies
7422
7470
  }));
7423
7471
  }, []);
7424
- const setDefaultCompany2 = (0, import_react59.useCallback)(
7472
+ const setDefaultCompany2 = (0, import_react60.useCallback)(
7425
7473
  (defaultCompany) => {
7426
7474
  setEnvState((prev) => ({
7427
7475
  ...prev,
@@ -7430,19 +7478,19 @@ function EnvProvider({
7430
7478
  },
7431
7479
  []
7432
7480
  );
7433
- const setUserInfo = (0, import_react59.useCallback)((user) => {
7481
+ const setUserInfo = (0, import_react60.useCallback)((user) => {
7434
7482
  setEnvState((prev) => ({
7435
7483
  ...prev,
7436
7484
  user
7437
7485
  }));
7438
7486
  }, []);
7439
- const setConfig2 = (0, import_react59.useCallback)((config) => {
7487
+ const setConfig2 = (0, import_react60.useCallback)((config) => {
7440
7488
  setEnvState((prev) => ({
7441
7489
  ...prev,
7442
7490
  config
7443
7491
  }));
7444
7492
  }, []);
7445
- const setEnvFile2 = (0, import_react59.useCallback)((envFile) => {
7493
+ const setEnvFile2 = (0, import_react60.useCallback)((envFile) => {
7446
7494
  setEnvState((prev) => ({
7447
7495
  ...prev,
7448
7496
  envFile
@@ -7468,7 +7516,7 @@ function EnvProvider({
7468
7516
  );
7469
7517
  }
7470
7518
  function useEnv() {
7471
- const context = (0, import_react59.useContext)(EnvContext);
7519
+ const context = (0, import_react60.useContext)(EnvContext);
7472
7520
  if (!context) {
7473
7521
  throw new Error("useEnv must be used within an EnvProvider");
7474
7522
  }
@@ -7476,7 +7524,7 @@ function useEnv() {
7476
7524
  }
7477
7525
 
7478
7526
  // src/provider/service-provider.tsx
7479
- var import_react61 = require("react");
7527
+ var import_react62 = require("react");
7480
7528
 
7481
7529
  // src/hooks/auth/use-forgot-password.ts
7482
7530
  var import_react_query3 = require("@tanstack/react-query");
@@ -8363,9 +8411,9 @@ var BaseModel = class {
8363
8411
  };
8364
8412
 
8365
8413
  // src/hooks/model/use-model.ts
8366
- var import_react60 = require("react");
8414
+ var import_react61 = require("react");
8367
8415
  var useModel = () => {
8368
- const initModel = (0, import_react60.useCallback)((modelData) => {
8416
+ const initModel = (0, import_react61.useCallback)((modelData) => {
8369
8417
  switch (modelData?.name) {
8370
8418
  default:
8371
8419
  return new BaseModel(modelData);
@@ -9619,9 +9667,19 @@ var useDeleteOrderLine = () => {
9619
9667
  };
9620
9668
  var use_delete_order_line_default = useDeleteOrderLine;
9621
9669
 
9670
+ // src/hooks/pos/supabase/use-add-product.ts
9671
+ var import_react_query129 = require("@tanstack/react-query");
9672
+ var useAddProduct = () => {
9673
+ const { addProductSupabase } = addProductSupabaseService();
9674
+ return (0, import_react_query129.useMutation)({
9675
+ mutationFn: addProductSupabase
9676
+ });
9677
+ };
9678
+ var use_add_product_default = useAddProduct;
9679
+
9622
9680
  // src/provider/service-provider.tsx
9623
9681
  var import_jsx_runtime7 = require("react/jsx-runtime");
9624
- var ServiceContext = (0, import_react61.createContext)(null);
9682
+ var ServiceContext = (0, import_react62.createContext)(null);
9625
9683
  var ServiceProvider = ({
9626
9684
  children
9627
9685
  }) => {
@@ -9753,12 +9811,13 @@ var ServiceProvider = ({
9753
9811
  useUpdateOrderLine: use_update_order_line_default,
9754
9812
  useUpdateOrder: use_update_order_default,
9755
9813
  useDeleteOrder: use_delete_order_default,
9756
- useDeleteOrderLine: use_delete_order_line_default
9814
+ useDeleteOrderLine: use_delete_order_line_default,
9815
+ useAddProduct: use_add_product_default
9757
9816
  };
9758
9817
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ServiceContext.Provider, { value: services, children });
9759
9818
  };
9760
9819
  var useService = () => {
9761
- const context = (0, import_react61.useContext)(ServiceContext);
9820
+ const context = (0, import_react62.useContext)(ServiceContext);
9762
9821
  if (!context) {
9763
9822
  throw new Error("useService must be used within a ServiceProvider");
9764
9823
  }
@@ -9766,7 +9825,7 @@ var useService = () => {
9766
9825
  };
9767
9826
 
9768
9827
  // src/provider/meta-provider.tsx
9769
- var import_react62 = require("react");
9828
+ var import_react63 = require("react");
9770
9829
  var import_jsx_runtime8 = require("react/jsx-runtime");
9771
9830
  var MetaProvider = ({ children }) => {
9772
9831
  const { env } = useEnv();
@@ -9815,7 +9874,7 @@ var MetaProvider = ({ children }) => {
9815
9874
  }
9816
9875
  }
9817
9876
  }
9818
- (0, import_react62.useEffect)(() => {
9877
+ (0, import_react63.useEffect)(() => {
9819
9878
  updateMetadata();
9820
9879
  }, [env?.defaultCompany]);
9821
9880
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children });