storemw-core-api 1.0.76 → 1.0.78

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.
@@ -175,7 +175,8 @@ const InjectionFieldService = (props) => {
175
175
  sqlWhere,
176
176
  sqlGroupBy,
177
177
  sqlOrderby,
178
- sqlLimitOffset
178
+ sqlLimitOffset,
179
+ skipFilterAccountId: true
179
180
  });
180
181
  data = await injectionFieldModel.raw(sqlRaw);
181
182
  const response = {
@@ -1 +1 @@
1
- {"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAAmJ;AACnJ,2EAA4K;AAC5K,2EAA4K;AAC5K,uFAAgN;AAChN,mFAAoM;AACpM,mFAAoM;AAIpM,+BAAiI;AACjI,mCAAkE;AAErD,QAAA,mBAAmB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACd,CAAA;AAIG,QAAA,uBAAuB,GAAG;IACnC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;CACN,CAAA;AAIV,MAAM,eAAe,GAAG;IACpB,GAAG,+CAAmB;IACtB,GAAG,uDAAuB;IAC1B,GAAG,2DAAyB;IAC5B,GAAG,+CAAmB;IACtB,GAAG,uDAAuB;CAC7B,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,GAAG,4CAAgB;IACnB,GAAG,oDAAoB;IACvB,GAAG,wDAAsB;IACzB,GAAG,4CAAgB;IACnB,GAAG,oDAAoB;CAC1B,CAAC;AA2EF,MAAM,gBAAgB,GAAG,CAAC,IAAuC,EAAE,SAAiB,EAAE,EAAE;IAEpF,OAAO;QACH,CAAC,GAAG,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QAC1D,CAAC,GAAG,kCAAyB,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;QAChE,CAAC,GAAG,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE;QAC3D,CAAC,GAAG,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS;QAC1D,CAAC,GAAG,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU;QAC5D,CAAC,GAAG,kCAAyB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC,GAAG,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,GAAG,kCAAyB,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;KAC5D,CAAA;AAEL,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC5D,CAAC,QAAQ,kCAAyB,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc;IAClE,CAAC,QAAQ,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IAC9D,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;IAC5D,CAAC,QAAQ,kCAAyB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IAC9D,CAAC,QAAQ,kCAAyB,CAAC,kBAAkB,EAAE,CAAC,EAAE,oBAAoB;IAC9E,CAAC,QAAQ,kCAAyB,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;IAChE,CAAC,QAAQ,kCAAyB,CAAC,qBAAqB,EAAE,CAAC,EAAE,uBAAuB;IACpF,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;CACzE,CAAA;AAED,IAAI,gBAAgB,GAAG;IACnB,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACtE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,kCAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IACtE,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,QAAQ,kCAAyB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAC1D,CAAC,QAAQ,kCAAyB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IACxD,CAAC,QAAQ,kCAAyB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CAC/D,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAmC,EAAE,EAAE;IAE/D,IAAI,eAAe,GAAG,EAAE,CAAA;IAExB,IAAI,QAAQ,IAAI,4CAAgB,EAAE,CAAC;QAC/B,eAAe,GAAG,uBAAuB,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,IAAI,oDAAoB,EAAE,CAAC;QACnC,eAAe,GAAG,2BAA2B,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,IAAI,4CAAgB,EAAE,CAAC;QAC/B,eAAe,GAAG,uBAAuB,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,IAAI,oDAAoB,EAAE,CAAC;QACnC,eAAe,GAAG,2BAA2B,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,IAAI,wDAAsB,EAAE,CAAC;QACrC,eAAe,GAAG,6BAA6B,CAAA;IACnD,CAAC;IAED,OAAO,eAAe,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IAEvE,MAAM,EACF,kBAAkB,GAAG,MAAM;IAC3B,UAAU;IACV,iBAAiB;IACjB,oBAAoB;IACpB,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,mBAAmB,GAAG,IAAA,4BAAmB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE5D,MAAM,yBAAyB,GAAG,IAAA,qDAAyB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACxE,MAAM,6BAA6B,GAAG,IAAA,6DAA6B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,+BAA+B,GAAG,IAAA,iEAA+B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACpF,MAAM,6BAA6B,GAAG,IAAA,6DAA6B,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAChF,MAAM,yBAAyB,GAAG,IAAA,qDAAyB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAExE,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAE,IAAI,EAA6B,EAAE,EAAE;QAEvE,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC,CAAA;QAErI,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACvC,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC;oBACN,KAAK,EAAE,GAAG,kCAAyB,CAAC,UAAU,EAAE;oBAChD,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,GAAG,SAAS,EAAE;iBACxB,CAAC;YACF,SAAS,EAAE,EAAE;SAChB,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhE,IAAI,QAAQ,GAAG,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAA;QAExC,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,eAAe,GAAG,kBAAkB,CAAC,QAAqC,CAAkC,CAAA;YAEhH,qDAAqD;YACrD,mBAAmB,CAAC,6BAA6B,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAClG,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAA0B,EAAE,EAAE;QAE/E,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACrC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACjG,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAC/B,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACQ,EAAE,EAAE;QAE1B,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,SAAS,GAAG;YACZ,wCAAwC;YACxC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;SACvC,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACpJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SACvJ,CAAA;QAED,IAAI,UAAU,GAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAE5F,IAAI,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;QAE7D,IAAI,QAAQ,GAAG;YACX,uBAAuB;YACvB,sBAAsB;YACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAA;QAED,IAAI,UAAU,GAAG,IAAA,qBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,cAAc,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,0BAA0B,EAA8B,EAAE,EAAE;QAEzH,MAAM,mBAAmB,GAAG,0BAA0B,IAAI,kBAAkB,CAAA;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAA;QAElB,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,QAAQ,GAAQ,EAAE,CAAA;QAEtB,IAAI,mBAAmB,KAAK,MAAM,EAAE,CAAC;YACjC,QAAQ,GAAG,MAAM,yBAAyB,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAA+C,EAAE,CAAC,CAAA;QACnI,CAAC;QAED,IAAI,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,6BAA6B,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,KAAmD,EAAE,CAAC,CAAA;QAC/I,CAAC;QAED,IAAI,mBAAmB,KAAK,MAAM,EAAE,CAAC;YACjC,QAAQ,GAAG,MAAM,yBAAyB,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,KAA+C,EAAE,CAAC,CAAA;QACnI,CAAC;QAED,IAAI,mBAAmB,KAAK,YAAY,EAAE,CAAC;YACvC,QAAQ,GAAG,MAAM,+BAA+B,CAAC,+BAA+B,CAAC,EAAE,IAAI,EAAE,KAAqD,EAAE,CAAC,CAAA;QACrJ,CAAC;QAED,IAAI,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACrC,QAAQ,GAAG,MAAM,6BAA6B,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,KAAmD,EAAE,CAAC,CAAA;QAC/I,CAAC;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,iBAAiB,EAA6B,EAAE,EAAE;QAErF,IAAI,CAAC,iBAAiB,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,+BAA+B,CAAC,CAAC;QAE3E,MAAM,OAAO,CAAC,GAAG,CACb,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAC/B,6BAA6B;YAC7B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,gBAAgB,GAAG,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;YAEnD,IAAI,QAAQ,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAA;YACvC,IAAI,eAAe,GAAG,kBAAkB,CAAC,QAAqC,CAAkC,CAAA;YAEhH,IAAI,gBAAgB,EAAE,CAAC;gBACnB,MAAM,mBAAmB,CAAC,8BAA8B,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAChG,CAAC;QACL,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,kCAAyB,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjJ,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,KAAK,EAAE,QAAmC,EAAE,WAAyC,EAAE,EAAE;QAEvH,+EAA+E;QAC/E,wBAAwB;QAExB,0DAA0D;QAC1D,uEAAuE;QACvE,sEAAsE;QACtE,IAAI;QAEJ,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;YACrC,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnF,EAAE,KAAK,EAAE,GAAG,kCAAyB,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;aAC5F;YACD,SAAS,EAAE,GAAG,kCAAyB,CAAC,kBAAkB,EAAE;YAC5D,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SAChB,CAAC,CAAA;QAEF,0BAA0B;QAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,UAAU;SAC1B,CAAC,CAAC,CAAA;IAEP,CAAC,CAAA;IAED,OAAO;QACH,oBAAoB;QACpB,iBAAiB;QACjB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,yBAAyB;KAC5B,CAAA;AAEL,CAAC,CAAA;AAxOY,QAAA,qBAAqB,yBAwOjC","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n // prisma,\n // accountId = 0,\n // actionUserId = 0,\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await injectionFieldModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
@@ -59,7 +59,7 @@ let itemSqlSelect = {
59
59
  [`catg.${models_1.ModelCategoryFields.status}`]: "category_status",
60
60
  [`catg.${models_1.ModelCategoryFields.description}`]: "category_description",
61
61
  [`catg.${models_1.ModelCategoryFields.parent_category_id}`]: "parent_category_id",
62
- [`brd.${models_1.ModelBrandFields.name}`]: "brand_status",
62
+ [`brd.${models_1.ModelBrandFields.name}`]: "brand_name",
63
63
  [`brd.${models_1.ModelBrandFields.status}`]: "brand_status",
64
64
  [`brd.${models_1.ModelBrandFields.description}`]: "brand_description"
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ItemProductService.js","sourceRoot":"","sources":["../../../src/services/item/ItemProductService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ProductModel,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields,\n ModelItemFields,\n ModelFileFields,\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"product\"\n\nexport const productDataTypes = {\n productInjectionFields: \"product_injection_fields\",\n itemInjectionFields: \"item_injection_fields\",\n allCategory: \"all_category\",\n allSupplier: \"all_supplier\",\n file: \"file\",\n product: \"product\"\n}\n\nexport type ItemProductDataType = keyof typeof productDataTypes;\n\nexport type ItemProductServiceProps = DefaultServiceProps & {};\n\nexport type ItemProductGetProps = QueryGet & {\n id: number,\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductListProps = QueryList & {\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductRemoveProps = {\n productIds: BigInt[]\n};\n\nexport type ItemProductCreateProps = {\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nexport type ItemProductUpdateProps = {\n productId: number,\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemProductCreateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemProductUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n}\n\nlet itemSqlSelect = {\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_status\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\"\n}\n\nconst getItemsSqlSelect = async (datatypes: any, injectionFieldService: any) => {\n\n let iif2Select = ``\n\n if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n const currentActiveFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n let bbb = currentActiveFields.map((col: any) => `'inf_${col}', iif2.${col}`).join(\", \")\n\n iif2Select = bbb.length > 0 ? `, ${bbb}` : ``\n\n }\n\n let itemsSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelItemFields.item_id}', itm.item_id,\n '${ModelItemFields.cbm}', itm.cbm,\n '${ModelItemFields.item_code}', itm.item_code,\n '${ModelItemFields.cost}', itm.cost,\n '${ModelItemFields.dimension_height}', itm.dimension_height::float,\n '${ModelItemFields.dimension_length}', itm.dimension_length::float,\n '${ModelItemFields.dimension_width}', itm.dimension_width::float,\n '${ModelItemFields.floor_price}', itm.floor_price::float,\n '${ModelItemFields.gross_weight}', itm.gross_weight::float,\n '${ModelItemFields.is_package}', itm.is_package,\n '${ModelItemFields.item_description}', itm.item_description,\n '${ModelItemFields.net_weight}', itm.net_weight::float,\n '${ModelItemFields.remark}', itm.remark,\n '${ModelItemFields.status}', itm.status,\n '${ModelItemFields.summary}', itm.summary,\n '${ModelItemFields.uom_id}', itm.uom_id,\n '${ModelItemFields.uom_price}', itm.uom_price::float,\n '${ModelItemFields.uom_bal}', itm.uom_bal::float,\n 'uom_description', uom.${ModelUomFields.description},\n 'uom_decimal_digit', uom.${ModelUomFields.decimal_digit}::float,\n 'uom_name', uom.${ModelUomFields.name},\n 'uom_status', uom.${ModelUomFields.status},\n 'uom_metric_type', uom.${ModelUomFields.metric_type},\n 'uom_metric_type_display_name', uom.${ModelUomFields.metric_type_display_name},\n '${ModelItemFields.volume_weight}', itm.volume_weight\n ${iif2Select}\n )\n ) FILTER (WHERE itm.item_id IS NOT NULL AND itm.isdelete = false AND itm.istrash = false),\n '[]'\n )`]: \"items\"\n }\n\n return itemsSqlSelect\n}\n\nlet defaultSqlSelect = {\n [`prd.${ModelProductFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`prd.${ModelProductFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`prd.${ModelProductFields.isdelete}`]: \"isdelete\",\n [`prd.${ModelProductFields.istrash}`]: \"istrash\",\n [`prd.${ModelProductFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemProductService = (props: ItemProductServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const productModel = ProductModel({ ...rest })\n\n const createItemProduct = async ({ data }: ItemProductCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.create({ data: _data })\n\n return response\n }\n\n const updateItemProduct = async ({ productId, data }: ItemProductUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.update({ where: { [`${ModelProductFields.product_id}`]: productId }, data: _data })\n\n return response\n }\n\n const getItemProduct = async ({ id, datatypes = [] }: ItemProductGetProps) => {\n\n let { data } = await listItemProducts({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelProductFields.product_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelProductFields.product_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItemProducts = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemProductListProps) => {\n\n let itemsSqlSelect = await getItemsSqlSelect(datatypes, injectionFieldService)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(prd.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, itemsSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"prd\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"items\", \"itm\", [\"prd.product_id = itm.product_id\", \"itm.isdelete = false\", \"itm.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"creator\", [\"prd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"updater\", [\"prd.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(productDataTypes.productInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"product\")\n\n const productInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...productInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, productInjectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"item_injection_fields\", \"iif\", [\"prd.product_id = iif.product_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'product'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(productInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // const productItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif2\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...productItemInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, productItemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(productDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"prd.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n if (datatypes.includes(productDataTypes.file)) {\n\n let fileSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelFileFields.file_id}', files.file_id,\n '${ModelFileFields.asset_url}', files.asset_url,\n '${ModelFileFields.asset_path}', files.asset_path,\n '${ModelFileFields.batch_code}', files.batch_code,\n '${ModelFileFields.content_type}', files.content_type,\n '${ModelFileFields.description}', files.description,\n '${ModelFileFields.field_module}', files.field_module,\n '${ModelFileFields.field_ref}', files.field_ref,\n '${ModelFileFields.file_compress_format}', files.file_compress_format,\n '${ModelFileFields.file_label}', files.file_label,\n '${ModelFileFields.file_name}', files.file_name,\n '${ModelFileFields.file_size_bytes}', files.file_size_bytes,\n '${ModelFileFields.foldername_day}', files.foldername_day,\n '${ModelFileFields.foldername_month}', files.foldername_month,\n '${ModelFileFields.foldername_year}', files.foldername_year,\n '${ModelFileFields.input_file_name}', files.input_file_name,\n '${ModelFileFields.input_file_size_bytes}', files.input_file_size_bytes,\n '${ModelFileFields.input_type}', files.input_type,\n '${ModelFileFields.refer_id_1}', files.refer_id_1,\n '${ModelFileFields.refer_id_2}', files.refer_id_2,\n '${ModelFileFields.remark}', files.remark,\n '${ModelFileFields.storage_provider_name}', files.storage_provider_name,\n '${ModelFileFields.tag_name}', files.tag_name\n )\n ) FILTER (WHERE files.file_id IS NOT NULL AND files.isdelete = false AND files.istrash = false), \n '[]'\n )`]: \"files\"\n }\n\n // filterColumns = { ...filterColumns, ...fileSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, fileSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"files\", \"files\", [\"prd.product_id = files.refer_id_1\", \"files.field_ref = 'item'\", \"files.field_module = 'product'\", \"files.isdelete = false\", \"files.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"prd.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `prd.isdelete = false`,\n `prd.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"products\",\n mainAlias: \"prd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await productModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeProducts = async ({ productIds }: ItemProductRemoveProps) => {\n\n if (!productIds.length) throwError('productIds is required');\n\n const response = await productModel.remove({ where: { [`${ModelProductFields.product_id}`]: { in: productIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(productDataTypes);\n }\n\n return {\n createItemProduct,\n updateItemProduct,\n getItemProduct,\n listItemProducts,\n removeProducts,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ItemProductService.js","sourceRoot":"","sources":["../../../src/services/item/ItemProductService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ProductModel,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields,\n ModelItemFields,\n ModelFileFields,\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"product\"\n\nexport const productDataTypes = {\n productInjectionFields: \"product_injection_fields\",\n itemInjectionFields: \"item_injection_fields\",\n allCategory: \"all_category\",\n allSupplier: \"all_supplier\",\n file: \"file\",\n product: \"product\"\n}\n\nexport type ItemProductDataType = keyof typeof productDataTypes;\n\nexport type ItemProductServiceProps = DefaultServiceProps & {};\n\nexport type ItemProductGetProps = QueryGet & {\n id: number,\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductListProps = QueryList & {\n datatypes: ItemProductDataType[]\n};\n\nexport type ItemProductRemoveProps = {\n productIds: BigInt[]\n};\n\nexport type ItemProductCreateProps = {\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nexport type ItemProductUpdateProps = {\n productId: number,\n data:\n // product\n {\n product: {\n brandId: number\n categoryId: number\n productName: string\n model: string\n productCode: string\n description: string\n summary: string\n status: Boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemProductCreateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemProductUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n\n return {\n [`${ModelProductFields.brand_id}`]: data.product.brandId,\n [`${ModelProductFields.category_id}`]: data.product.categoryId,\n [`${ModelProductFields.description}`]: data.product.description,\n [`${ModelProductFields.product_name}`]: data.product.productName,\n [`${ModelProductFields.model}`]: data.product.model,\n [`${ModelProductFields.product_code}`]: data.product.productCode,\n [`${ModelProductFields.summary}`]: data.product.summary,\n [`${ModelProductFields.status}`]: data.product.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n}\n\nlet itemSqlSelect = {\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_name\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\"\n}\n\nconst getItemsSqlSelect = async (datatypes: any, injectionFieldService: any) => {\n\n let iif2Select = ``\n\n if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n const currentActiveFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n let bbb = currentActiveFields.map((col: any) => `'inf_${col}', iif2.${col}`).join(\", \")\n\n iif2Select = bbb.length > 0 ? `, ${bbb}` : ``\n\n }\n\n let itemsSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelItemFields.item_id}', itm.item_id,\n '${ModelItemFields.cbm}', itm.cbm,\n '${ModelItemFields.item_code}', itm.item_code,\n '${ModelItemFields.cost}', itm.cost,\n '${ModelItemFields.dimension_height}', itm.dimension_height::float,\n '${ModelItemFields.dimension_length}', itm.dimension_length::float,\n '${ModelItemFields.dimension_width}', itm.dimension_width::float,\n '${ModelItemFields.floor_price}', itm.floor_price::float,\n '${ModelItemFields.gross_weight}', itm.gross_weight::float,\n '${ModelItemFields.is_package}', itm.is_package,\n '${ModelItemFields.item_description}', itm.item_description,\n '${ModelItemFields.net_weight}', itm.net_weight::float,\n '${ModelItemFields.remark}', itm.remark,\n '${ModelItemFields.status}', itm.status,\n '${ModelItemFields.summary}', itm.summary,\n '${ModelItemFields.uom_id}', itm.uom_id,\n '${ModelItemFields.uom_price}', itm.uom_price::float,\n '${ModelItemFields.uom_bal}', itm.uom_bal::float,\n 'uom_description', uom.${ModelUomFields.description},\n 'uom_decimal_digit', uom.${ModelUomFields.decimal_digit}::float,\n 'uom_name', uom.${ModelUomFields.name},\n 'uom_status', uom.${ModelUomFields.status},\n 'uom_metric_type', uom.${ModelUomFields.metric_type},\n 'uom_metric_type_display_name', uom.${ModelUomFields.metric_type_display_name},\n '${ModelItemFields.volume_weight}', itm.volume_weight\n ${iif2Select}\n )\n ) FILTER (WHERE itm.item_id IS NOT NULL AND itm.isdelete = false AND itm.istrash = false),\n '[]'\n )`]: \"items\"\n }\n\n return itemsSqlSelect\n}\n\nlet defaultSqlSelect = {\n [`prd.${ModelProductFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`prd.${ModelProductFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`prd.${ModelProductFields.isdelete}`]: \"isdelete\",\n [`prd.${ModelProductFields.istrash}`]: \"istrash\",\n [`prd.${ModelProductFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemProductService = (props: ItemProductServiceProps) => {\n\n const {\n // prisma,\n // accountId = 0,\n // actionUserId = 0\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const productModel = ProductModel({ ...rest })\n\n const createItemProduct = async ({ data }: ItemProductCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.create({ data: _data })\n\n return response\n }\n\n const updateItemProduct = async ({ productId, data }: ItemProductUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update product payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await productModel.update({ where: { [`${ModelProductFields.product_id}`]: productId }, data: _data })\n\n return response\n }\n\n const getItemProduct = async ({ id, datatypes = [] }: ItemProductGetProps) => {\n\n let { data } = await listItemProducts({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelProductFields.product_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelProductFields.product_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItemProducts = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemProductListProps) => {\n\n let itemsSqlSelect = await getItemsSqlSelect(datatypes, injectionFieldService)\n\n let data = []\n\n let sqlSelect = [\n `COUNT(prd.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, itemsSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"prd\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"items\", \"itm\", [\"prd.product_id = itm.product_id\", \"itm.isdelete = false\", \"itm.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"creator\", [\"prd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"prd\", \"users\", \"updater\", [\"prd.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(productDataTypes.productInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"product\")\n\n const productInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...productInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, productInjectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"item_injection_fields\", \"iif\", [\"prd.product_id = iif.product_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'product'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(productInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(productDataTypes.itemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // const productItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif2\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...productItemInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, productItemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(productDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"prd.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n if (datatypes.includes(productDataTypes.file)) {\n\n let fileSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelFileFields.file_id}', files.file_id,\n '${ModelFileFields.asset_url}', files.asset_url,\n '${ModelFileFields.asset_path}', files.asset_path,\n '${ModelFileFields.batch_code}', files.batch_code,\n '${ModelFileFields.content_type}', files.content_type,\n '${ModelFileFields.description}', files.description,\n '${ModelFileFields.field_module}', files.field_module,\n '${ModelFileFields.field_ref}', files.field_ref,\n '${ModelFileFields.file_compress_format}', files.file_compress_format,\n '${ModelFileFields.file_label}', files.file_label,\n '${ModelFileFields.file_name}', files.file_name,\n '${ModelFileFields.file_size_bytes}', files.file_size_bytes,\n '${ModelFileFields.foldername_day}', files.foldername_day,\n '${ModelFileFields.foldername_month}', files.foldername_month,\n '${ModelFileFields.foldername_year}', files.foldername_year,\n '${ModelFileFields.input_file_name}', files.input_file_name,\n '${ModelFileFields.input_file_size_bytes}', files.input_file_size_bytes,\n '${ModelFileFields.input_type}', files.input_type,\n '${ModelFileFields.refer_id_1}', files.refer_id_1,\n '${ModelFileFields.refer_id_2}', files.refer_id_2,\n '${ModelFileFields.remark}', files.remark,\n '${ModelFileFields.storage_provider_name}', files.storage_provider_name,\n '${ModelFileFields.tag_name}', files.tag_name\n )\n ) FILTER (WHERE files.file_id IS NOT NULL AND files.isdelete = false AND files.istrash = false), \n '[]'\n )`]: \"files\"\n }\n\n // filterColumns = { ...filterColumns, ...fileSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, fileSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"prd\", \"files\", \"files\", [\"prd.product_id = files.refer_id_1\", \"files.field_ref = 'item'\", \"files.field_module = 'product'\", \"files.isdelete = false\", \"files.istrash = false\"])]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"prd.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `prd.isdelete = false`,\n `prd.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"products\",\n mainAlias: \"prd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await productModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeProducts = async ({ productIds }: ItemProductRemoveProps) => {\n\n if (!productIds.length) throwError('productIds is required');\n\n const response = await productModel.remove({ where: { [`${ModelProductFields.product_id}`]: { in: productIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(productDataTypes);\n }\n\n return {\n createItemProduct,\n updateItemProduct,\n getItemProduct,\n listItemProducts,\n removeProducts,\n getDataTypes\n }\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.76",
3
+ "version": "1.0.78",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",