storemw-core-api 1.0.164 → 1.0.165

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.
@@ -7,5 +7,7 @@ export { CustomizeTransform } from "./customize/CustomizeTransform";
7
7
  export type { CustomizeTransformProps } from "./customize/CustomizeTransform";
8
8
  export { toFieldMap, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType, buildInjectionFieldsSqlSelect, getListWithCount } from "./query_builder/queryBuilder";
9
9
  export { getDocumentSqlRelationMaps, buildDocumentMainSqlSelect, buildDocumentDefaultSqlSelect, buildDocumentProfileSqlSelect, buildDocumentLocationSqlSelect, buildDocumentTotalSqlSelect, buildDocumentItemSqlSelectAgg, buildDocumentItemSqlSelect, buildDocumentDocumentSqlSelectAgg, buildDocumentDocumentSqlSelect } from "./query_builder/queryDocument";
10
+ export { getDocumentProfileRelationMaps } from "./query_builder/queryDocumentProfile";
11
+ export { getUserBranchRelationMaps } from "./query_builder/queryUserBranch";
10
12
  export { getFileSqlRelationMaps, buildFileMainSqlSelect, buildFileDefaultSqlSelect, } from "./query_builder/queryFile";
11
13
  export { getSchedulerLogSqlRelationMaps, getSchedulerRequestSqlRelationMaps, buildSchedulerLogMainSqlSelect, buildSchedulerRequestMainSqlSelect, buildSchedulerLogDefaultSqlSelect, buildSchedulerRequestDefaultSqlSelect } from "./query_builder/queryScheduler";
package/dist/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildSchedulerRequestDefaultSqlSelect = exports.buildSchedulerLogDefaultSqlSelect = exports.buildSchedulerRequestMainSqlSelect = exports.buildSchedulerLogMainSqlSelect = exports.getSchedulerRequestSqlRelationMaps = exports.getSchedulerLogSqlRelationMaps = exports.buildFileDefaultSqlSelect = exports.buildFileMainSqlSelect = exports.getFileSqlRelationMaps = exports.buildDocumentDocumentSqlSelect = exports.buildDocumentDocumentSqlSelectAgg = exports.buildDocumentItemSqlSelect = exports.buildDocumentItemSqlSelectAgg = exports.buildDocumentTotalSqlSelect = exports.buildDocumentLocationSqlSelect = exports.buildDocumentProfileSqlSelect = exports.buildDocumentDefaultSqlSelect = exports.buildDocumentMainSqlSelect = exports.getDocumentSqlRelationMaps = exports.getListWithCount = exports.buildInjectionFieldsSqlSelect = exports.getFieldsByType = exports.buildSqlOrderBy = exports.buildSqlLimitOffset = exports.buildSqlWhere = exports.buildSqlSelect = exports.buildSqlRelation = exports.buildSqlRawSelectCount = exports.buildSqlRawSelect = exports.toFieldMap = exports.CustomizeTransform = exports.serviceFactoryAllowUserTypes = exports.serviceFactoryNames = exports.ServiceFactory = exports.ModelFactory = exports.prisma = void 0;
3
+ exports.buildSchedulerRequestDefaultSqlSelect = exports.buildSchedulerLogDefaultSqlSelect = exports.buildSchedulerRequestMainSqlSelect = exports.buildSchedulerLogMainSqlSelect = exports.getSchedulerRequestSqlRelationMaps = exports.getSchedulerLogSqlRelationMaps = exports.buildFileDefaultSqlSelect = exports.buildFileMainSqlSelect = exports.getFileSqlRelationMaps = exports.getUserBranchRelationMaps = exports.getDocumentProfileRelationMaps = exports.buildDocumentDocumentSqlSelect = exports.buildDocumentDocumentSqlSelectAgg = exports.buildDocumentItemSqlSelect = exports.buildDocumentItemSqlSelectAgg = exports.buildDocumentTotalSqlSelect = exports.buildDocumentLocationSqlSelect = exports.buildDocumentProfileSqlSelect = exports.buildDocumentDefaultSqlSelect = exports.buildDocumentMainSqlSelect = exports.getDocumentSqlRelationMaps = exports.getListWithCount = exports.buildInjectionFieldsSqlSelect = exports.getFieldsByType = exports.buildSqlOrderBy = exports.buildSqlLimitOffset = exports.buildSqlWhere = exports.buildSqlSelect = exports.buildSqlRelation = exports.buildSqlRawSelectCount = exports.buildSqlRawSelect = exports.toFieldMap = exports.CustomizeTransform = exports.serviceFactoryAllowUserTypes = exports.serviceFactoryNames = exports.ServiceFactory = exports.ModelFactory = exports.prisma = void 0;
4
4
  var prisma_1 = require("./prisma/prisma");
5
5
  Object.defineProperty(exports, "prisma", { enumerable: true, get: function () { return prisma_1.prisma; } });
6
6
  var ModelFactory_1 = require("./model_factory/ModelFactory");
@@ -35,6 +35,10 @@ Object.defineProperty(exports, "buildDocumentItemSqlSelectAgg", { enumerable: tr
35
35
  Object.defineProperty(exports, "buildDocumentItemSqlSelect", { enumerable: true, get: function () { return queryDocument_1.buildDocumentItemSqlSelect; } });
36
36
  Object.defineProperty(exports, "buildDocumentDocumentSqlSelectAgg", { enumerable: true, get: function () { return queryDocument_1.buildDocumentDocumentSqlSelectAgg; } });
37
37
  Object.defineProperty(exports, "buildDocumentDocumentSqlSelect", { enumerable: true, get: function () { return queryDocument_1.buildDocumentDocumentSqlSelect; } });
38
+ var queryDocumentProfile_1 = require("./query_builder/queryDocumentProfile");
39
+ Object.defineProperty(exports, "getDocumentProfileRelationMaps", { enumerable: true, get: function () { return queryDocumentProfile_1.getDocumentProfileRelationMaps; } });
40
+ var queryUserBranch_1 = require("./query_builder/queryUserBranch");
41
+ Object.defineProperty(exports, "getUserBranchRelationMaps", { enumerable: true, get: function () { return queryUserBranch_1.getUserBranchRelationMaps; } });
38
42
  var queryFile_1 = require("./query_builder/queryFile");
39
43
  Object.defineProperty(exports, "getFileSqlRelationMaps", { enumerable: true, get: function () { return queryFile_1.getFileSqlRelationMaps; } });
40
44
  Object.defineProperty(exports, "buildFileMainSqlSelect", { enumerable: true, get: function () { return queryFile_1.buildFileMainSqlSelect; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,6DAA2D;AAAlD,4GAAA,YAAY,OAAA;AAGrB,mEAAoH;AAA3G,gHAAA,cAAc,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAAE,8HAAA,4BAA4B,OAAA;AAG1E,qEAAmE;AAA1D,wHAAA,kBAAkB,OAAA;AAG3B,6DAA6P;AAApP,0GAAA,UAAU,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,6HAAA,6BAA6B,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEvN,+DAYsC;AAXlC,2HAAA,0BAA0B,OAAA;AAC1B,2HAAA,0BAA0B,OAAA;AAC1B,8HAAA,6BAA6B,OAAA;AAC7B,8HAAA,6BAA6B,OAAA;AAC7B,gCAAgC;AAChC,+HAAA,8BAA8B,OAAA;AAC9B,4HAAA,2BAA2B,OAAA;AAC3B,8HAAA,6BAA6B,OAAA;AAC7B,2HAAA,0BAA0B,OAAA;AAC1B,kIAAA,iCAAiC,OAAA;AACjC,+HAAA,8BAA8B,OAAA;AAGlC,uDAIkC;AAH9B,mHAAA,sBAAsB,OAAA;AACtB,mHAAA,sBAAsB,OAAA;AACtB,sHAAA,yBAAyB,OAAA;AAG7B,iEAOuC;AANnC,gIAAA,8BAA8B,OAAA;AAC9B,oIAAA,kCAAkC,OAAA;AAClC,gIAAA,8BAA8B,OAAA;AAC9B,oIAAA,kCAAkC,OAAA;AAClC,mIAAA,iCAAiC,OAAA;AACjC,uIAAA,qCAAqC,OAAA","sourcesContent":["export { prisma } from \"./prisma/prisma\"\n\nexport { ModelFactory } from \"./model_factory/ModelFactory\"\nexport type { DefaultOmitFields } from \"./model_factory/default\"\n\nexport { ServiceFactory, serviceFactoryNames, serviceFactoryAllowUserTypes } from \"./service_factory/ServiceFactory\"\nexport type { ServiceFactoryName, ServiceFactoryAllowUserType } from \"./service_factory/ServiceFactory\"\n\nexport { CustomizeTransform } from \"./customize/CustomizeTransform\"\nexport type { CustomizeTransformProps } from \"./customize/CustomizeTransform\"\n\nexport { toFieldMap, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType, buildInjectionFieldsSqlSelect, getListWithCount } from \"./query_builder/queryBuilder\"\n\nexport {\n getDocumentSqlRelationMaps,\n buildDocumentMainSqlSelect,\n buildDocumentDefaultSqlSelect,\n buildDocumentProfileSqlSelect,\n // buildDocumentAmountSqlSelect,\n buildDocumentLocationSqlSelect,\n buildDocumentTotalSqlSelect,\n buildDocumentItemSqlSelectAgg,\n buildDocumentItemSqlSelect,\n buildDocumentDocumentSqlSelectAgg,\n buildDocumentDocumentSqlSelect\n} from \"./query_builder/queryDocument\"\n\nexport {\n getFileSqlRelationMaps,\n buildFileMainSqlSelect,\n buildFileDefaultSqlSelect,\n} from \"./query_builder/queryFile\"\n\nexport {\n getSchedulerLogSqlRelationMaps,\n getSchedulerRequestSqlRelationMaps,\n buildSchedulerLogMainSqlSelect,\n buildSchedulerRequestMainSqlSelect,\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerRequestDefaultSqlSelect\n} from \"./query_builder/queryScheduler\""]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,6DAA2D;AAAlD,4GAAA,YAAY,OAAA;AAGrB,mEAAoH;AAA3G,gHAAA,cAAc,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAAE,8HAAA,4BAA4B,OAAA;AAG1E,qEAAmE;AAA1D,wHAAA,kBAAkB,OAAA;AAG3B,6DAA6P;AAApP,0GAAA,UAAU,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,+GAAA,eAAe,OAAA;AAAE,6HAAA,6BAA6B,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEvN,+DAYsC;AAXlC,2HAAA,0BAA0B,OAAA;AAC1B,2HAAA,0BAA0B,OAAA;AAC1B,8HAAA,6BAA6B,OAAA;AAC7B,8HAAA,6BAA6B,OAAA;AAC7B,gCAAgC;AAChC,+HAAA,8BAA8B,OAAA;AAC9B,4HAAA,2BAA2B,OAAA;AAC3B,8HAAA,6BAA6B,OAAA;AAC7B,2HAAA,0BAA0B,OAAA;AAC1B,kIAAA,iCAAiC,OAAA;AACjC,+HAAA,8BAA8B,OAAA;AAGlC,6EAE6C;AADzC,sIAAA,8BAA8B,OAAA;AAGlC,mEAEwC;AADpC,4HAAA,yBAAyB,OAAA;AAG7B,uDAIkC;AAH9B,mHAAA,sBAAsB,OAAA;AACtB,mHAAA,sBAAsB,OAAA;AACtB,sHAAA,yBAAyB,OAAA;AAG7B,iEAOuC;AANnC,gIAAA,8BAA8B,OAAA;AAC9B,oIAAA,kCAAkC,OAAA;AAClC,gIAAA,8BAA8B,OAAA;AAC9B,oIAAA,kCAAkC,OAAA;AAClC,mIAAA,iCAAiC,OAAA;AACjC,uIAAA,qCAAqC,OAAA","sourcesContent":["export { prisma } from \"./prisma/prisma\"\n\nexport { ModelFactory } from \"./model_factory/ModelFactory\"\nexport type { DefaultOmitFields } from \"./model_factory/default\"\n\nexport { ServiceFactory, serviceFactoryNames, serviceFactoryAllowUserTypes } from \"./service_factory/ServiceFactory\"\nexport type { ServiceFactoryName, ServiceFactoryAllowUserType } from \"./service_factory/ServiceFactory\"\n\nexport { CustomizeTransform } from \"./customize/CustomizeTransform\"\nexport type { CustomizeTransformProps } from \"./customize/CustomizeTransform\"\n\nexport { toFieldMap, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType, buildInjectionFieldsSqlSelect, getListWithCount } from \"./query_builder/queryBuilder\"\n\nexport {\n getDocumentSqlRelationMaps,\n buildDocumentMainSqlSelect,\n buildDocumentDefaultSqlSelect,\n buildDocumentProfileSqlSelect,\n // buildDocumentAmountSqlSelect,\n buildDocumentLocationSqlSelect,\n buildDocumentTotalSqlSelect,\n buildDocumentItemSqlSelectAgg,\n buildDocumentItemSqlSelect,\n buildDocumentDocumentSqlSelectAgg,\n buildDocumentDocumentSqlSelect\n} from \"./query_builder/queryDocument\"\n\nexport {\n getDocumentProfileRelationMaps\n} from \"./query_builder/queryDocumentProfile\"\n\nexport {\n getUserBranchRelationMaps\n} from \"./query_builder/queryUserBranch\"\n\nexport {\n getFileSqlRelationMaps,\n buildFileMainSqlSelect,\n buildFileDefaultSqlSelect,\n} from \"./query_builder/queryFile\"\n\nexport {\n getSchedulerLogSqlRelationMaps,\n getSchedulerRequestSqlRelationMaps,\n buildSchedulerLogMainSqlSelect,\n buildSchedulerRequestMainSqlSelect,\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerRequestDefaultSqlSelect\n} from \"./query_builder/queryScheduler\""]}
@@ -41,7 +41,7 @@ export declare const buildSqlRawSelect: ({ tableName, mainAlias, accountId, sqlS
41
41
  sqlLimitOffset: string;
42
42
  skipFilterAccountId?: boolean;
43
43
  }) => string;
44
- export declare const buildSqlRawSelectCount: ({ tableName, mainAlias, accountId, sqlSelect, sqlRelation, sqlWhere, sqlGroupBy, sqlOrderby, skipFilterAccountId }: {
44
+ export declare const buildSqlRawSelectCount: ({ tableName, mainAlias, accountId, sqlRelation, sqlWhere, sqlGroupBy, skipFilterAccountId }: {
45
45
  tableName: string;
46
46
  mainAlias: string;
47
47
  accountId: number;
@@ -29,20 +29,70 @@ const buildSqlRawSelect = ({ tableName, mainAlias, accountId, sqlSelect, sqlRela
29
29
  `;
30
30
  };
31
31
  exports.buildSqlRawSelect = buildSqlRawSelect;
32
- const buildSqlRawSelectCount = ({ tableName, mainAlias, accountId, sqlSelect, sqlRelation, sqlWhere, sqlGroupBy, sqlOrderby, skipFilterAccountId = false }) => {
33
- const sql = (0, exports.buildSqlRawSelect)({
34
- tableName,
35
- mainAlias,
36
- accountId,
37
- sqlSelect,
38
- sqlRelation,
39
- sqlWhere,
40
- sqlGroupBy,
41
- sqlOrderby,
42
- sqlLimitOffset: "",
43
- skipFilterAccountId
44
- });
45
- return `WITH filtered_docs AS (${sql}) SELECT COUNT(*) AS filtered_count FROM filtered_docs;`;
32
+ // export const buildSqlRawSelectCount = ({
33
+ // tableName,
34
+ // mainAlias,
35
+ // accountId,
36
+ // sqlSelect,
37
+ // sqlRelation,
38
+ // sqlWhere,
39
+ // sqlGroupBy,
40
+ // sqlOrderby,
41
+ // skipFilterAccountId = false
42
+ // }: {
43
+ // tableName: string,
44
+ // mainAlias: string,
45
+ // accountId: number,
46
+ // sqlSelect: string[]
47
+ // sqlRelation: string[]
48
+ // sqlWhere: string[]
49
+ // sqlGroupBy: string[]
50
+ // sqlOrderby: string,
51
+ // skipFilterAccountId?: boolean
52
+ // }) => {
53
+ // const sql = buildSqlRawSelect({
54
+ // tableName,
55
+ // mainAlias,
56
+ // accountId,
57
+ // sqlSelect,
58
+ // sqlRelation,
59
+ // sqlWhere,
60
+ // sqlGroupBy,
61
+ // sqlOrderby,
62
+ // sqlLimitOffset: "",
63
+ // skipFilterAccountId
64
+ // })
65
+ // return `WITH filtered_docs AS (${sql}) SELECT COUNT(*) AS filtered_count FROM filtered_docs;`
66
+ // }
67
+ const buildSqlRawSelectCount = ({ tableName, mainAlias, accountId, sqlRelation, sqlWhere, sqlGroupBy, skipFilterAccountId = false }) => {
68
+ // enforce account isolation
69
+ if (!skipFilterAccountId) {
70
+ sqlWhere = [
71
+ ...sqlWhere,
72
+ `${mainAlias}.accountid = ${accountId}`
73
+ ];
74
+ }
75
+ const baseQuery = `
76
+ FROM ${tableName} AS ${mainAlias}
77
+ ${sqlRelation.join(" ")}
78
+ ${sqlWhere.length > 0 ? `WHERE ${sqlWhere.join(" AND ")}` : ""}
79
+ `;
80
+ // CASE 1: no grouping → FASTEST PATH
81
+ if (!sqlGroupBy.length) {
82
+ return `
83
+ SELECT COUNT(*)
84
+ ${baseQuery}
85
+ `;
86
+ }
87
+ // CASE 2: grouping → safe count of grouped results
88
+ return `
89
+ SELECT COUNT(*)
90
+ FROM (
91
+ SELECT 1
92
+ ${baseQuery}
93
+ GROUP BY ${sqlGroupBy.join(",")}
94
+ ) t
95
+ `;
46
96
  };
47
97
  exports.buildSqlRawSelectCount = buildSqlRawSelectCount;
48
98
  /**
@@ -328,7 +378,8 @@ const getListWithCount = async ({ model, tableName, mainAlias, countKey, sqlRela
328
378
  sqlSelect: [`${mainAlias}.${countKey}`],
329
379
  sqlRelation: filteredArray,
330
380
  sqlWhere,
331
- sqlGroupBy: [`${mainAlias}.${countKey}`],
381
+ // sqlGroupBy: [`${mainAlias}.${countKey}`],
382
+ sqlGroupBy: [],
332
383
  sqlOrderby: ``
333
384
  });
334
385
  let count = await model.raw(sqlRawCount);
@@ -1 +1 @@
1
- {"version":3,"file":"queryBuilder.js","sourceRoot":"","sources":["../../../src/lib/query_builder/queryBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { queryListFilterOperators } from '@/schema/common';\nimport { QueryList, QueryListFilter } from \"@/schema/common\";\nimport { throwError } from '@/utils';\n\ntype SqlDialect = \"postgres\" | \"mysql\";\ntype JoinType = \"left\" | \"inner\" | \"right\";\n\n/**\n * Create a typed map of model fields for safer access in raw queries.\n *\n * This utility takes a TypeScript model type `T` and returns an object\n * where each key is the field name and the value is the same string.\n * \n * The returned object can be used for dot-suggestion, reducing typos\n * when referencing columns in SQL queries.\n *\n * @example\n * import type { Customer } from \"@prisma/client\";\n * import { createFields } from \"@/utils/createFields\";\n * \n * const CustomerFields = createFields<Customer>();\n * console.log(CustomerFields.id); // \"id\"\n * console.log(CustomerFields.name); // \"name\"\n * \n * const query = `SELECT ${CustomerFields.id}, ${CustomerFields.name} FROM customers`;\n */\ntype FieldMap<T> = {\n [K in keyof T]: K;\n};\n\nexport function getFieldsByType<T>(): FieldMap<T> {\n return new Proxy({} as FieldMap<T>, {\n get: (_, prop) => prop,\n }) as FieldMap<T>;\n}\n\ntype FieldMeta = { name: string; type: string };\n\nexport const toFieldMap = (\n fields: FieldMeta[],\n prefix = \"uip\",\n infix = \"inf_\"\n): Record<string, string> => {\n return Object.fromEntries(\n fields.map(f => [`${prefix}.${f.name}`, `${infix}${f.name}`])\n );\n}\n\nexport const buildSqlRawSelect = ({\n tableName,\n mainAlias,\n accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId = false\n}: {\n tableName: string,\n mainAlias: string,\n accountId: number,\n sqlSelect: string[]\n sqlRelation: string[]\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string\n sqlLimitOffset: string\n skipFilterAccountId?: boolean\n}) => {\n\n if (skipFilterAccountId === false) {\n sqlWhere = [...sqlWhere, `${mainAlias}.accountid = ${accountId}`]\n }\n\n return `SELECT \n ${sqlSelect.join(\",\")}\n FROM \n ${tableName} as ${mainAlias}\n ${sqlRelation.join(\" \")}\n ${sqlWhere.length > 0 ? `WHERE ${sqlWhere.join(' and ')}` : ``}\n ${sqlGroupBy.length > 0 ? `GROUP BY ${sqlGroupBy.join(\",\")}` : \"\"}\n ${sqlOrderby} \n ${sqlLimitOffset}\n `\n}\n\n\nexport const buildSqlRawSelectCount = ({\n tableName,\n mainAlias,\n accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n skipFilterAccountId = false\n}: {\n tableName: string,\n mainAlias: string,\n accountId: number,\n sqlSelect: string[]\n sqlRelation: string[]\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string,\n skipFilterAccountId?: boolean\n}) => {\n\n const sql = buildSqlRawSelect({\n tableName,\n mainAlias,\n accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset: \"\",\n skipFilterAccountId\n })\n\n return `WITH filtered_docs AS (${sql}) SELECT COUNT(*) AS filtered_count FROM filtered_docs;`\n}\n\n/**\n * Build a SQL join clause\n * @param joinType - \"left\" | \"inner\" | \"right\" (default: \"left\")\n * @param sourceAlias - alias of the source table, e.g., \"cus\"\n * @param targetTable - table to join, e.g., \"users\"\n * @param targetAlias - alias for the target table, e.g., \"usr\"\n * @param onConditions - array of ON conditions, e.g., [\"cus.user_id = usr.user_id\", \"usr.isdelete = false\"]\n */\nexport const buildSqlRelation = (\n joinType: JoinType,\n sourceAlias: string,\n targetTable: string,\n targetAlias: string,\n onConditions: string[]\n) => {\n return `\n ${joinType} join ${targetTable} as ${targetAlias}\n on ${onConditions.join(\" and \")}\n `;\n}\n/**\n * Build a SQL SELECT column list with aliases\n *\n * This function takes a table alias and a mapping of column names to\n * desired aliases, and returns a comma-separated string suitable for\n * inclusion in a SQL SELECT statement.\n *\n * @param abb - The alias of the table in the SQL query (e.g., \"cus\" for customers)\n * @param columns - An object mapping column names to their desired aliases\n * e.g., { id: \"customerId\", name: \"customerName\" }\n * @returns A string of columns with aliases, e.g.,\n * \"cus.id as customerId, cus.name as customerName\"\n *\n * @example\n * const cols = buildSqlSelect(\"cus\", { id: \"customerId\", name: \"customerName\" });\n * // cols => \"cus.id as customerId, cus.name as customerName\"\n */\nexport const buildSqlSelect = (abb: string, columns: Record<string, string>): string => {\n\n if (!columns || Object.keys(columns).length === 0) return \"\";\n\n return Object.entries(columns)\n .map(([col, alias]) => `${abb ? abb + \".\" : \"\"}${col} as ${alias}`)\n .join(\", \");\n}\n\nexport const buildSqlWhere = (\n filters: QueryListFilter[] | undefined,\n selectColumns: any,\n ctx: { dialect: SqlDialect } = {\n dialect: \"postgres\"\n }\n): {\n where: string,\n colNames: string[],\n aliasKeys: string[]\n} => {\n\n if (!filters || filters.length === 0) {\n return {\n where: ``,\n colNames: [],\n aliasKeys: []\n }\n }\n\n const andClauses: string[] = [];\n const orClauses: string[] = [];\n\n // const col = (field: string) => (tableAlias ? `${tableAlias}.${field}` : field);\n\n const col = (field: string) => {\n let filteredColumns = Object.fromEntries(\n Object.entries(selectColumns).filter(([key, alias]) => alias === field)\n )\n return filteredColumns ? Object.keys(filteredColumns)[0] : field\n }\n\n const colNames: string[] = []\n\n for (const filter of filters) {\n if (!filter) continue;\n\n const { field, operator, value } = filter;\n\n // const formatValue = (val: any, prefix?: string, suffix?: string) => \n // typeof val === \"string\" ? `'${prefix ?? \"\"}${val.replace(/'/g, \"''\")}${suffix ?? \"\"}'` : val;\n\n const formatValue = (\n val: any,\n operator: QueryListFilter[\"operator\"],\n prefix?: string,\n suffix?: string\n ) => {\n\n let returnValue = val\n let sqlValuePrefix = ``\n let sqlValueSuffix = ``\n\n if (operator === queryListFilterOperators.startsWith) {\n sqlValuePrefix = ``\n sqlValueSuffix = `%`\n }\n\n if (operator === queryListFilterOperators.endsWith) {\n sqlValuePrefix = `%`\n sqlValueSuffix = ``\n }\n\n if (\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n sqlValuePrefix = `%`\n sqlValueSuffix = `%`\n }\n\n // override\n if (prefix) sqlValuePrefix = prefix\n if (suffix) sqlValueSuffix = suffix\n\n if (typeof val === \"string\") {\n returnValue = `'${sqlValuePrefix ?? \"\"}${val.replace(/'/g, \"''\")}${sqlValueSuffix ?? \"\"}'`\n }\n\n // check the type of val must string & operator is using like\n if (\n operator === queryListFilterOperators.startsWith ||\n operator === queryListFilterOperators.endsWith ||\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n if (typeof val !== \"string\") {\n throwError(`Filters part:${field} using:${operator} like the val must be string`)\n }\n }\n\n return returnValue\n\n }\n\n const formatWherePart = (val: any, operator: QueryListFilter[\"operator\"]) => {\n\n let sqlOperator: string = operator\n\n // check with like operator\n if (\n operator === queryListFilterOperators.startsWith ||\n operator === queryListFilterOperators.endsWith ||\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n sqlOperator = ctx.dialect === \"postgres\" ? `ILIKE` : `LIKE` // only ILIKE supported in postgres\n }\n\n // not array in value\n if (Array.isArray(value) === false) {\n\n let sqlValue = formatValue(val, operator)\n return `${colName} ${sqlOperator} ${sqlValue}`\n\n }\n\n // for array in value\n let subOrQuery: string[] = []\n\n value.forEach((i: any) => {\n\n let sqlValue = `${formatValue(i, operator)}`\n\n subOrQuery.push(`${colName} ${sqlOperator} ${sqlValue}`)\n\n })\n\n return `(${subOrQuery.join(\" OR \")})`\n\n }\n\n const colName = `${col(field)}`\n\n switch (operator) {\n case queryListFilterOperators.eq:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.eq)}`);\n // andClauses.push(`${colName} = ${formatValue(value)}`);\n break;\n case queryListFilterOperators.notEq:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.notEq)}`);\n // andClauses.push(`${colName} != ${formatValue(value)}`);\n break;\n case queryListFilterOperators.startsWith:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.startsWith)}`);\n // andClauses.push(`${colName} ILIKE '${value}%'`);\n break;\n case queryListFilterOperators.endsWith:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.endsWith)}`);\n // andClauses.push(`${colName} ILIKE '%${value}'`);\n break;\n case queryListFilterOperators.contains:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.contains)}`);\n // andClauses.push(`${colName} ILIKE '%${value}%'`);\n break;\n case queryListFilterOperators.anyOf:\n andClauses.push(`${colName} IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.excludeOf:\n andClauses.push(`${colName} NOT IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.moreThanEq:\n andClauses.push(`${colName} >= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.lessThanEq:\n andClauses.push(`${colName} <= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.isNull:\n andClauses.push(`${colName} IS NULL`);\n break;\n case queryListFilterOperators.isNotNull:\n andClauses.push(`${colName} IS NOT NULL`);\n break;\n\n // Or-variants\n case queryListFilterOperators.eqOr:\n // orClauses.push(`${colName} = ${formatValue(value, operator)}`);\n orClauses.push(`${formatWherePart(value, queryListFilterOperators.eqOr)}`);\n break;\n case queryListFilterOperators.containsOr:\n // orClauses.push(`${colName} ILIKE '%${value, operator}%'`);\n orClauses.push(`${formatWherePart(value, queryListFilterOperators.containsOr)}`);\n break;\n case queryListFilterOperators.anyOfOr:\n orClauses.push(`${colName} IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.excludeOfOr:\n orClauses.push(`${colName} NOT IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.moreThanEqOr:\n orClauses.push(`${colName} >= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.lessThanEqOr:\n orClauses.push(`${colName} <= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.isNullOr:\n orClauses.push(`${colName} IS NULL`);\n break;\n }\n\n colNames.push(colName)\n\n }\n\n const whereParts: string[] = [];\n if (andClauses.length) whereParts.push(`(${andClauses.join(\" AND \")})`);\n if (orClauses.length) whereParts.push(`(${orClauses.join(\" OR \")})`);\n\n // Extract aliasKeys before '.'\n const aliasKeys = Array.from(\n new Set(\n colNames\n .map(key => key.match(/\\b([a-zA-Z_][a-zA-Z0-9_]*)\\./)?.[1])\n .filter((v): v is string => Boolean(v)) // type guard keeps only valid strings\n )\n );\n\n return {\n where: whereParts.length ? `${whereParts.join(\" AND \")}` : \"\",\n colNames,\n aliasKeys\n }\n};\n\n/** Build ORDER BY clause */\nexport const buildSqlOrderBy = (sortField: QueryList[\"sortfield\"], sortOrder: QueryList[\"sortorder\"]) =>\n sortField ? `ORDER BY ${sortField} ${sortOrder.toUpperCase()}` : \"\";\n\n/** Build LIMIT/OFFSET clause */\nexport const buildSqlLimitOffset = (limit?: QueryList[\"limit\"], offset?: QueryList[\"offset\"]) => {\n const parts: string[] = [];\n\n const _limit = Number(limit ?? 10)\n const _offset = Number(offset ?? 0)\n\n if (_limit !== undefined) parts.push(`LIMIT ${_limit}`);\n if (_offset !== undefined) parts.push(`OFFSET ${_offset}`);\n\n return parts.join(\" \");\n};\n\n/** For Injection Fields */\nexport const buildInjectionFieldsSqlSelect = (alias: string, activeInjectionFields: any[] = []) => {\n return activeInjectionFields.reduce((acc, col) => {\n\n // check the field type is decimal\n let castValue = ``\n\n if (col?.fieldType === \"numeric\") {\n castValue = `::float`\n }\n\n if (col?.fieldType === \"integer\") {\n castValue = `::int`\n }\n\n acc[`${alias}.${col?.fieldName}${castValue}`] = `inf_${col?.fieldName}`;\n return acc;\n }, {} as Record<string, string>);\n}\n\n/**\n * Executes a dynamic SQL listing query along with a count query.\n * \n * This function builds SQL SELECT and COUNT statements using the provided\n * relation maps, filters, and query options, then executes them through\n * the given Prisma model's `raw()` method.\n *\n * Commonly used for paginated data listings that require both the\n * result set and total record count.\n * \n * Returns an object containing:\n * - `data`: The paginated result set.\n * - `total`: The total count of records that match the filters.\n */\nexport const getListWithCount = async ({\n model,\n tableName,\n mainAlias,\n countKey,\n sqlRelationMaps,\n accountId,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n}: {\n model: any,\n tableName: string,\n mainAlias: string,\n countKey: string,\n sqlRelationMaps: any,\n accountId: number,\n filters: any[],\n filterColumns: any,\n sqlSelect: string[]\n sqlSelectAgg: string[],\n sqlRelation: string[]\n sqlRelationAgg: string[],\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string\n sqlLimitOffset: string\n}) => {\n\n const requestWhere = buildSqlWhere(filters, filterColumns)\n\n sqlWhere = [\n ...sqlWhere,\n ...(filters.length ? [requestWhere?.where] : []),\n ]\n\n // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName,\n mainAlias,\n accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await model.raw(sqlRaw)\n\n let aliasKeys = requestWhere?.aliasKeys\n\n let filteredArray: any = Object.entries(sqlRelationMaps)\n .filter(([key]) => aliasKeys.includes(key))\n .map(([_, value]) => value);\n\n // console.log('filteredArray', JSON.stringify(filteredArray), aliasKeys)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName,\n mainAlias,\n accountId,\n sqlSelect: [`${mainAlias}.${countKey}`],\n sqlRelation: filteredArray,\n sqlWhere,\n sqlGroupBy: [`${mainAlias}.${countKey}`],\n sqlOrderby: ``\n })\n\n let count = await model.raw(sqlRawCount)\n\n return {\n data,\n total: Number(count[0].filtered_count)\n }\n\n}"]}
1
+ {"version":3,"file":"queryBuilder.js","sourceRoot":"","sources":["../../../src/lib/query_builder/queryBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { queryListFilterOperators } from '@/schema/common';\nimport { QueryList, QueryListFilter } from \"@/schema/common\";\nimport { throwError } from '@/utils';\n\ntype SqlDialect = \"postgres\" | \"mysql\";\ntype JoinType = \"left\" | \"inner\" | \"right\";\n\n/**\n * Create a typed map of model fields for safer access in raw queries.\n *\n * This utility takes a TypeScript model type `T` and returns an object\n * where each key is the field name and the value is the same string.\n * \n * The returned object can be used for dot-suggestion, reducing typos\n * when referencing columns in SQL queries.\n *\n * @example\n * import type { Customer } from \"@prisma/client\";\n * import { createFields } from \"@/utils/createFields\";\n * \n * const CustomerFields = createFields<Customer>();\n * console.log(CustomerFields.id); // \"id\"\n * console.log(CustomerFields.name); // \"name\"\n * \n * const query = `SELECT ${CustomerFields.id}, ${CustomerFields.name} FROM customers`;\n */\ntype FieldMap<T> = {\n [K in keyof T]: K;\n};\n\nexport function getFieldsByType<T>(): FieldMap<T> {\n return new Proxy({} as FieldMap<T>, {\n get: (_, prop) => prop,\n }) as FieldMap<T>;\n}\n\ntype FieldMeta = { name: string; type: string };\n\nexport const toFieldMap = (\n fields: FieldMeta[],\n prefix = \"uip\",\n infix = \"inf_\"\n): Record<string, string> => {\n return Object.fromEntries(\n fields.map(f => [`${prefix}.${f.name}`, `${infix}${f.name}`])\n );\n}\n\nexport const buildSqlRawSelect = ({\n tableName,\n mainAlias,\n accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId = false\n}: {\n tableName: string,\n mainAlias: string,\n accountId: number,\n sqlSelect: string[]\n sqlRelation: string[]\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string\n sqlLimitOffset: string\n skipFilterAccountId?: boolean\n}) => {\n\n if (skipFilterAccountId === false) {\n sqlWhere = [...sqlWhere, `${mainAlias}.accountid = ${accountId}`]\n }\n\n return `SELECT \n ${sqlSelect.join(\",\")}\n FROM \n ${tableName} as ${mainAlias}\n ${sqlRelation.join(\" \")}\n ${sqlWhere.length > 0 ? `WHERE ${sqlWhere.join(' and ')}` : ``}\n ${sqlGroupBy.length > 0 ? `GROUP BY ${sqlGroupBy.join(\",\")}` : \"\"}\n ${sqlOrderby} \n ${sqlLimitOffset}\n `\n}\n\n\n// export const buildSqlRawSelectCount = ({\n// tableName,\n// mainAlias,\n// accountId,\n// sqlSelect,\n// sqlRelation,\n// sqlWhere,\n// sqlGroupBy,\n// sqlOrderby,\n// skipFilterAccountId = false\n// }: {\n// tableName: string,\n// mainAlias: string,\n// accountId: number,\n// sqlSelect: string[]\n// sqlRelation: string[]\n// sqlWhere: string[]\n// sqlGroupBy: string[]\n// sqlOrderby: string,\n// skipFilterAccountId?: boolean\n// }) => {\n\n// const sql = buildSqlRawSelect({\n// tableName,\n// mainAlias,\n// accountId,\n// sqlSelect,\n// sqlRelation,\n// sqlWhere,\n// sqlGroupBy,\n// sqlOrderby,\n// sqlLimitOffset: \"\",\n// skipFilterAccountId\n// })\n\n// return `WITH filtered_docs AS (${sql}) SELECT COUNT(*) AS filtered_count FROM filtered_docs;`\n// }\n\nexport const buildSqlRawSelectCount = ({\n tableName,\n mainAlias,\n accountId,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n skipFilterAccountId = false\n}: {\n tableName: string,\n mainAlias: string,\n accountId: number,\n sqlSelect: string[] // ignored on purpose\n sqlRelation: string[]\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string // ignored on purpose\n skipFilterAccountId?: boolean\n}) => {\n\n // enforce account isolation\n if (!skipFilterAccountId) {\n sqlWhere = [\n ...sqlWhere,\n `${mainAlias}.accountid = ${accountId}`\n ]\n }\n\n const baseQuery = `\n FROM ${tableName} AS ${mainAlias}\n ${sqlRelation.join(\" \")}\n ${sqlWhere.length > 0 ? `WHERE ${sqlWhere.join(\" AND \")}` : \"\"}\n `\n\n // CASE 1: no grouping → FASTEST PATH\n if (!sqlGroupBy.length) {\n return `\n SELECT COUNT(*)\n ${baseQuery}\n `\n }\n\n // CASE 2: grouping → safe count of grouped results\n return `\n SELECT COUNT(*)\n FROM (\n SELECT 1\n ${baseQuery}\n GROUP BY ${sqlGroupBy.join(\",\")}\n ) t\n `\n}\n\n/**\n * Build a SQL join clause\n * @param joinType - \"left\" | \"inner\" | \"right\" (default: \"left\")\n * @param sourceAlias - alias of the source table, e.g., \"cus\"\n * @param targetTable - table to join, e.g., \"users\"\n * @param targetAlias - alias for the target table, e.g., \"usr\"\n * @param onConditions - array of ON conditions, e.g., [\"cus.user_id = usr.user_id\", \"usr.isdelete = false\"]\n */\nexport const buildSqlRelation = (\n joinType: JoinType,\n sourceAlias: string,\n targetTable: string,\n targetAlias: string,\n onConditions: string[]\n) => {\n return `\n ${joinType} join ${targetTable} as ${targetAlias}\n on ${onConditions.join(\" and \")}\n `;\n}\n/**\n * Build a SQL SELECT column list with aliases\n *\n * This function takes a table alias and a mapping of column names to\n * desired aliases, and returns a comma-separated string suitable for\n * inclusion in a SQL SELECT statement.\n *\n * @param abb - The alias of the table in the SQL query (e.g., \"cus\" for customers)\n * @param columns - An object mapping column names to their desired aliases\n * e.g., { id: \"customerId\", name: \"customerName\" }\n * @returns A string of columns with aliases, e.g.,\n * \"cus.id as customerId, cus.name as customerName\"\n *\n * @example\n * const cols = buildSqlSelect(\"cus\", { id: \"customerId\", name: \"customerName\" });\n * // cols => \"cus.id as customerId, cus.name as customerName\"\n */\nexport const buildSqlSelect = (abb: string, columns: Record<string, string>): string => {\n\n if (!columns || Object.keys(columns).length === 0) return \"\";\n\n return Object.entries(columns)\n .map(([col, alias]) => `${abb ? abb + \".\" : \"\"}${col} as ${alias}`)\n .join(\", \");\n}\n\nexport const buildSqlWhere = (\n filters: QueryListFilter[] | undefined,\n selectColumns: any,\n ctx: { dialect: SqlDialect } = {\n dialect: \"postgres\"\n }\n): {\n where: string,\n colNames: string[],\n aliasKeys: string[]\n} => {\n\n if (!filters || filters.length === 0) {\n return {\n where: ``,\n colNames: [],\n aliasKeys: []\n }\n }\n\n const andClauses: string[] = [];\n const orClauses: string[] = [];\n\n // const col = (field: string) => (tableAlias ? `${tableAlias}.${field}` : field);\n\n const col = (field: string) => {\n let filteredColumns = Object.fromEntries(\n Object.entries(selectColumns).filter(([key, alias]) => alias === field)\n )\n return filteredColumns ? Object.keys(filteredColumns)[0] : field\n }\n\n const colNames: string[] = []\n\n for (const filter of filters) {\n if (!filter) continue;\n\n const { field, operator, value } = filter;\n\n // const formatValue = (val: any, prefix?: string, suffix?: string) => \n // typeof val === \"string\" ? `'${prefix ?? \"\"}${val.replace(/'/g, \"''\")}${suffix ?? \"\"}'` : val;\n\n const formatValue = (\n val: any,\n operator: QueryListFilter[\"operator\"],\n prefix?: string,\n suffix?: string\n ) => {\n\n let returnValue = val\n let sqlValuePrefix = ``\n let sqlValueSuffix = ``\n\n if (operator === queryListFilterOperators.startsWith) {\n sqlValuePrefix = ``\n sqlValueSuffix = `%`\n }\n\n if (operator === queryListFilterOperators.endsWith) {\n sqlValuePrefix = `%`\n sqlValueSuffix = ``\n }\n\n if (\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n sqlValuePrefix = `%`\n sqlValueSuffix = `%`\n }\n\n // override\n if (prefix) sqlValuePrefix = prefix\n if (suffix) sqlValueSuffix = suffix\n\n if (typeof val === \"string\") {\n returnValue = `'${sqlValuePrefix ?? \"\"}${val.replace(/'/g, \"''\")}${sqlValueSuffix ?? \"\"}'`\n }\n\n // check the type of val must string & operator is using like\n if (\n operator === queryListFilterOperators.startsWith ||\n operator === queryListFilterOperators.endsWith ||\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n if (typeof val !== \"string\") {\n throwError(`Filters part:${field} using:${operator} like the val must be string`)\n }\n }\n\n return returnValue\n\n }\n\n const formatWherePart = (val: any, operator: QueryListFilter[\"operator\"]) => {\n\n let sqlOperator: string = operator\n\n // check with like operator\n if (\n operator === queryListFilterOperators.startsWith ||\n operator === queryListFilterOperators.endsWith ||\n operator === queryListFilterOperators.contains ||\n operator === queryListFilterOperators.containsOr\n ) {\n sqlOperator = ctx.dialect === \"postgres\" ? `ILIKE` : `LIKE` // only ILIKE supported in postgres\n }\n\n // not array in value\n if (Array.isArray(value) === false) {\n\n let sqlValue = formatValue(val, operator)\n return `${colName} ${sqlOperator} ${sqlValue}`\n\n }\n\n // for array in value\n let subOrQuery: string[] = []\n\n value.forEach((i: any) => {\n\n let sqlValue = `${formatValue(i, operator)}`\n\n subOrQuery.push(`${colName} ${sqlOperator} ${sqlValue}`)\n\n })\n\n return `(${subOrQuery.join(\" OR \")})`\n\n }\n\n const colName = `${col(field)}`\n\n switch (operator) {\n case queryListFilterOperators.eq:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.eq)}`);\n // andClauses.push(`${colName} = ${formatValue(value)}`);\n break;\n case queryListFilterOperators.notEq:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.notEq)}`);\n // andClauses.push(`${colName} != ${formatValue(value)}`);\n break;\n case queryListFilterOperators.startsWith:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.startsWith)}`);\n // andClauses.push(`${colName} ILIKE '${value}%'`);\n break;\n case queryListFilterOperators.endsWith:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.endsWith)}`);\n // andClauses.push(`${colName} ILIKE '%${value}'`);\n break;\n case queryListFilterOperators.contains:\n andClauses.push(`${formatWherePart(value, queryListFilterOperators.contains)}`);\n // andClauses.push(`${colName} ILIKE '%${value}%'`);\n break;\n case queryListFilterOperators.anyOf:\n andClauses.push(`${colName} IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.excludeOf:\n andClauses.push(`${colName} NOT IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.moreThanEq:\n andClauses.push(`${colName} >= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.lessThanEq:\n andClauses.push(`${colName} <= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.isNull:\n andClauses.push(`${colName} IS NULL`);\n break;\n case queryListFilterOperators.isNotNull:\n andClauses.push(`${colName} IS NOT NULL`);\n break;\n\n // Or-variants\n case queryListFilterOperators.eqOr:\n // orClauses.push(`${colName} = ${formatValue(value, operator)}`);\n orClauses.push(`${formatWherePart(value, queryListFilterOperators.eqOr)}`);\n break;\n case queryListFilterOperators.containsOr:\n // orClauses.push(`${colName} ILIKE '%${value, operator}%'`);\n orClauses.push(`${formatWherePart(value, queryListFilterOperators.containsOr)}`);\n break;\n case queryListFilterOperators.anyOfOr:\n orClauses.push(`${colName} IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.excludeOfOr:\n orClauses.push(`${colName} NOT IN (${(Array.isArray(value) ? value : [value]).map((i) => formatValue(i, operator)).join(\", \")})`);\n break;\n case queryListFilterOperators.moreThanEqOr:\n orClauses.push(`${colName} >= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.lessThanEqOr:\n orClauses.push(`${colName} <= ${formatValue(value, operator)}`);\n break;\n case queryListFilterOperators.isNullOr:\n orClauses.push(`${colName} IS NULL`);\n break;\n }\n\n colNames.push(colName)\n\n }\n\n const whereParts: string[] = [];\n if (andClauses.length) whereParts.push(`(${andClauses.join(\" AND \")})`);\n if (orClauses.length) whereParts.push(`(${orClauses.join(\" OR \")})`);\n\n // Extract aliasKeys before '.'\n const aliasKeys = Array.from(\n new Set(\n colNames\n .map(key => key.match(/\\b([a-zA-Z_][a-zA-Z0-9_]*)\\./)?.[1])\n .filter((v): v is string => Boolean(v)) // type guard keeps only valid strings\n )\n );\n\n return {\n where: whereParts.length ? `${whereParts.join(\" AND \")}` : \"\",\n colNames,\n aliasKeys\n }\n};\n\n/** Build ORDER BY clause */\nexport const buildSqlOrderBy = (sortField: QueryList[\"sortfield\"], sortOrder: QueryList[\"sortorder\"]) =>\n sortField ? `ORDER BY ${sortField} ${sortOrder.toUpperCase()}` : \"\";\n\n/** Build LIMIT/OFFSET clause */\nexport const buildSqlLimitOffset = (limit?: QueryList[\"limit\"], offset?: QueryList[\"offset\"]) => {\n const parts: string[] = [];\n\n const _limit = Number(limit ?? 10)\n const _offset = Number(offset ?? 0)\n\n if (_limit !== undefined) parts.push(`LIMIT ${_limit}`);\n if (_offset !== undefined) parts.push(`OFFSET ${_offset}`);\n\n return parts.join(\" \");\n};\n\n/** For Injection Fields */\nexport const buildInjectionFieldsSqlSelect = (alias: string, activeInjectionFields: any[] = []) => {\n return activeInjectionFields.reduce((acc, col) => {\n\n // check the field type is decimal\n let castValue = ``\n\n if (col?.fieldType === \"numeric\") {\n castValue = `::float`\n }\n\n if (col?.fieldType === \"integer\") {\n castValue = `::int`\n }\n\n acc[`${alias}.${col?.fieldName}${castValue}`] = `inf_${col?.fieldName}`;\n return acc;\n }, {} as Record<string, string>);\n}\n\n/**\n * Executes a dynamic SQL listing query along with a count query.\n * \n * This function builds SQL SELECT and COUNT statements using the provided\n * relation maps, filters, and query options, then executes them through\n * the given Prisma model's `raw()` method.\n *\n * Commonly used for paginated data listings that require both the\n * result set and total record count.\n * \n * Returns an object containing:\n * - `data`: The paginated result set.\n * - `total`: The total count of records that match the filters.\n */\nexport const getListWithCount = async ({\n model,\n tableName,\n mainAlias,\n countKey,\n sqlRelationMaps,\n accountId,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n}: {\n model: any,\n tableName: string,\n mainAlias: string,\n countKey: string,\n sqlRelationMaps: any,\n accountId: number,\n filters: any[],\n filterColumns: any,\n sqlSelect: string[]\n sqlSelectAgg: string[],\n sqlRelation: string[]\n sqlRelationAgg: string[],\n sqlWhere: string[]\n sqlGroupBy: string[]\n sqlOrderby: string\n sqlLimitOffset: string\n}) => {\n\n const requestWhere = buildSqlWhere(filters, filterColumns)\n\n sqlWhere = [\n ...sqlWhere,\n ...(filters.length ? [requestWhere?.where] : []),\n ]\n\n // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName,\n mainAlias,\n accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await model.raw(sqlRaw)\n\n let aliasKeys = requestWhere?.aliasKeys\n\n let filteredArray: any = Object.entries(sqlRelationMaps)\n .filter(([key]) => aliasKeys.includes(key))\n .map(([_, value]) => value);\n\n // console.log('filteredArray', JSON.stringify(filteredArray), aliasKeys)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName,\n mainAlias,\n accountId,\n sqlSelect: [`${mainAlias}.${countKey}`],\n sqlRelation: filteredArray,\n sqlWhere,\n // sqlGroupBy: [`${mainAlias}.${countKey}`],\n sqlGroupBy: [],\n sqlOrderby: ``\n })\n\n let count = await model.raw(sqlRawCount)\n\n return {\n data,\n total: Number(count[0].filtered_count)\n }\n\n}"]}
@@ -0,0 +1,7 @@
1
+ export declare const getDocumentProfileRelationMaps: () => {
2
+ sqlRelationMaps: Record<"creator" | "updater", string>;
3
+ relationKeys: {
4
+ creator: string;
5
+ updater: string;
6
+ };
7
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ // import {
3
+ // ModelUserFields,
4
+ // ModelSchedulerLogFields,
5
+ // ModelSchedulerRequestFields
6
+ // } from "../../models"
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getDocumentProfileRelationMaps = void 0;
9
+ const queryBuilder_1 = require("./queryBuilder");
10
+ const getDocumentProfileRelationMaps = () => {
11
+ let relationKeys = {
12
+ creator: "creator",
13
+ updater: "updater"
14
+ };
15
+ let sqlRelationMaps = {
16
+ creator: (0, queryBuilder_1.buildSqlRelation)("left", "docpro", "users", "creator", ["docpro.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
17
+ updater: (0, queryBuilder_1.buildSqlRelation)("left", "docpro", "users", "updater", ["docpro.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
18
+ };
19
+ return {
20
+ sqlRelationMaps,
21
+ relationKeys
22
+ };
23
+ };
24
+ exports.getDocumentProfileRelationMaps = getDocumentProfileRelationMaps;
25
+ // export const buildSchedulerLogMainSqlSelect = () => {
26
+ // return {
27
+ // [`slog.${ModelSchedulerLogFields.scheduler_log_id}`]: "scheduler_log_id",
28
+ // [`slog.${ModelSchedulerLogFields.scheduler_task_id}`]: "scheduler_task_id",
29
+ // [`slog.${ModelSchedulerLogFields.field_module}`]: "field_module",
30
+ // [`slog.${ModelSchedulerLogFields.field_ref}`]: "field_ref",
31
+ // [`slog.${ModelSchedulerLogFields.flow_type}`]: "flow_type",
32
+ // [`slog.${ModelSchedulerLogFields.destination_type}`]: "destination_type",
33
+ // [`slog.${ModelSchedulerLogFields.destination_entity_id}`]: "destination_entity_id",
34
+ // [`slog.${ModelSchedulerLogFields.destination_entity_label}`]: "destination_entity_label",
35
+ // [`slog.${ModelSchedulerLogFields.destination_submit_payload}`]: "destination_submit_payload",
36
+ // [`slog.${ModelSchedulerLogFields.destination_submit_response}`]: "destination_submit_response",
37
+ // [`slog.${ModelSchedulerLogFields.source_type}`]: "source_type",
38
+ // [`slog.${ModelSchedulerLogFields.source_entity_id}`]: "source_entity_id",
39
+ // [`slog.${ModelSchedulerLogFields.source_entity_label}`]: "source_entity_label",
40
+ // [`slog.${ModelSchedulerLogFields.source_entity_data}`]: "source_entity_data",
41
+ // [`slog.${ModelSchedulerLogFields.log_action}`]: "log_action",
42
+ // [`slog.${ModelSchedulerLogFields.log_label}`]: "log_label",
43
+ // [`slog.${ModelSchedulerLogFields.log_message}`]: "log_message",
44
+ // [`slog.${ModelSchedulerLogFields.log_status}`]: "log_status",
45
+ // }
46
+ // }
47
+ // export const buildSchedulerRequestMainSqlSelect = () => {
48
+ // return {
49
+ // [`sreq.${ModelSchedulerRequestFields.scheduler_request_id}`]: "scheduler_request_id",
50
+ // [`sreq.${ModelSchedulerRequestFields.integration_id}`]: "integration_id",
51
+ // [`sreq.${ModelSchedulerRequestFields.field_module}`]: "field_module",
52
+ // [`sreq.${ModelSchedulerRequestFields.field_ref}`]: "field_ref",
53
+ // [`sreq.${ModelSchedulerRequestFields.source_entity_id}`]: "source_entity_id",
54
+ // [`sreq.${ModelSchedulerRequestFields.source_entity_label}`]: "source_entity_label",
55
+ // [`sreq.${ModelSchedulerRequestFields.source_entity_data}`]: "source_entity_data",
56
+ // [`sreq.${ModelSchedulerRequestFields.destination_entity_id}`]: "destination_entity_id",
57
+ // [`sreq.${ModelSchedulerRequestFields.destination_entity_label}`]: "destination_entity_label",
58
+ // [`sreq.${ModelSchedulerRequestFields.request_action}`]: "request_action",
59
+ // [`sreq.${ModelSchedulerRequestFields.attempt_datetime}`]: "attempt_datetime",
60
+ // [`sreq.${ModelSchedulerRequestFields.attempt_no}::float`]: "attempt_no",
61
+ // [`sreq.${ModelSchedulerRequestFields.attempt_result}`]: "attempt_result",
62
+ // [`sreq.${ModelSchedulerRequestFields.attempt_status}`]: "attempt_status",
63
+ // }
64
+ // }
65
+ // export const buildSchedulerLogDefaultSqlSelect = () => {
66
+ // return {
67
+ // [`slog.${ModelSchedulerLogFields.createdatetime}`]: "createdatetime",
68
+ // [`creator.${ModelUserFields.login_username}`]: "createusername",
69
+ // [`slog.${ModelSchedulerLogFields.updatedatetime}`]: "updatedatetime",
70
+ // [`updater.${ModelUserFields.login_username}`]: "updateusername",
71
+ // [`slog.${ModelSchedulerLogFields.isdelete}`]: "isdelete",
72
+ // [`slog.${ModelSchedulerLogFields.istrash}`]: "istrash",
73
+ // [`slog.${ModelSchedulerLogFields.accountid}`]: "accountid",
74
+ // }
75
+ // }
76
+ // export const buildSchedulerRequestDefaultSqlSelect = () => {
77
+ // return {
78
+ // [`sreq.${ModelSchedulerRequestFields.createdatetime}`]: "createdatetime",
79
+ // [`creator.${ModelUserFields.login_username}`]: "createusername",
80
+ // [`sreq.${ModelSchedulerRequestFields.updatedatetime}`]: "updatedatetime",
81
+ // [`updater.${ModelUserFields.login_username}`]: "updateusername",
82
+ // [`sreq.${ModelSchedulerRequestFields.isdelete}`]: "isdelete",
83
+ // [`sreq.${ModelSchedulerRequestFields.istrash}`]: "istrash",
84
+ // [`sreq.${ModelSchedulerRequestFields.accountid}`]: "accountid",
85
+ // }
86
+ // }
87
+ //# sourceMappingURL=queryDocumentProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryDocumentProfile.js","sourceRoot":"","sources":["../../../src/lib/query_builder/queryDocumentProfile.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,uBAAuB;AACvB,+BAA+B;AAC/B,kCAAkC;AAClC,oBAAoB;;;AAEpB,iDAAkD;AAE3C,MAAM,8BAA8B,GAAG,GAAG,EAAE;IAE/C,IAAI,YAAY,GAAG;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;KACrB,CAAC;IAEF,IAAI,eAAe,GAA2E;QAC1F,OAAO,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,uCAAuC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;QACjK,OAAO,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,uCAAuC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;KACpK,CAAC;IAEF,OAAO;QACH,eAAe;QACf,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AAjBY,QAAA,8BAA8B,kCAiB1C;AAED,wDAAwD;AACxD,eAAe;AACf,oFAAoF;AACpF,sFAAsF;AACtF,4EAA4E;AAC5E,sEAAsE;AACtE,sEAAsE;AACtE,oFAAoF;AACpF,8FAA8F;AAC9F,oGAAoG;AACpG,wGAAwG;AACxG,0GAA0G;AAC1G,0EAA0E;AAC1E,oFAAoF;AACpF,0FAA0F;AAC1F,wFAAwF;AACxF,wEAAwE;AACxE,sEAAsE;AACtE,0EAA0E;AAC1E,wEAAwE;AACxE,QAAQ;AACR,IAAI;AAEJ,4DAA4D;AAC5D,eAAe;AACf,gGAAgG;AAChG,oFAAoF;AACpF,gFAAgF;AAChF,0EAA0E;AAC1E,wFAAwF;AACxF,8FAA8F;AAC9F,4FAA4F;AAC5F,kGAAkG;AAClG,wGAAwG;AACxG,oFAAoF;AACpF,wFAAwF;AACxF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,QAAQ;AACR,IAAI;AAEJ,2DAA2D;AAC3D,eAAe;AACf,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,2EAA2E;AAC3E,oEAAoE;AACpE,kEAAkE;AAClE,sEAAsE;AACtE,QAAQ;AACR,IAAI;AAEJ,+DAA+D;AAC/D,eAAe;AACf,oFAAoF;AACpF,2EAA2E;AAC3E,oFAAoF;AACpF,2EAA2E;AAC3E,wEAAwE;AACxE,sEAAsE;AACtE,0EAA0E;AAC1E,QAAQ;AACR,IAAI","sourcesContent":["// import {\n// ModelUserFields,\n// ModelSchedulerLogFields,\n// ModelSchedulerRequestFields\n// } from \"@/models\"\n\nimport { buildSqlRelation } from \"./queryBuilder\";\n\nexport const getDocumentProfileRelationMaps = () => {\n\n let relationKeys = {\n creator: \"creator\",\n updater: \"updater\"\n };\n\n let sqlRelationMaps: Record<keyof typeof relationKeys, ReturnType<typeof buildSqlRelation>> = {\n creator: buildSqlRelation(\"left\", \"docpro\", \"users\", \"creator\", [\"docpro.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n updater: buildSqlRelation(\"left\", \"docpro\", \"users\", \"updater\", [\"docpro.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n };\n\n return {\n sqlRelationMaps,\n relationKeys\n }\n\n}\n\n// export const buildSchedulerLogMainSqlSelect = () => {\n// return {\n// [`slog.${ModelSchedulerLogFields.scheduler_log_id}`]: \"scheduler_log_id\",\n// [`slog.${ModelSchedulerLogFields.scheduler_task_id}`]: \"scheduler_task_id\",\n// [`slog.${ModelSchedulerLogFields.field_module}`]: \"field_module\",\n// [`slog.${ModelSchedulerLogFields.field_ref}`]: \"field_ref\",\n// [`slog.${ModelSchedulerLogFields.flow_type}`]: \"flow_type\",\n// [`slog.${ModelSchedulerLogFields.destination_type}`]: \"destination_type\",\n// [`slog.${ModelSchedulerLogFields.destination_entity_id}`]: \"destination_entity_id\",\n// [`slog.${ModelSchedulerLogFields.destination_entity_label}`]: \"destination_entity_label\",\n// [`slog.${ModelSchedulerLogFields.destination_submit_payload}`]: \"destination_submit_payload\",\n// [`slog.${ModelSchedulerLogFields.destination_submit_response}`]: \"destination_submit_response\",\n// [`slog.${ModelSchedulerLogFields.source_type}`]: \"source_type\",\n// [`slog.${ModelSchedulerLogFields.source_entity_id}`]: \"source_entity_id\",\n// [`slog.${ModelSchedulerLogFields.source_entity_label}`]: \"source_entity_label\",\n// [`slog.${ModelSchedulerLogFields.source_entity_data}`]: \"source_entity_data\",\n// [`slog.${ModelSchedulerLogFields.log_action}`]: \"log_action\",\n// [`slog.${ModelSchedulerLogFields.log_label}`]: \"log_label\",\n// [`slog.${ModelSchedulerLogFields.log_message}`]: \"log_message\",\n// [`slog.${ModelSchedulerLogFields.log_status}`]: \"log_status\",\n// }\n// }\n\n// export const buildSchedulerRequestMainSqlSelect = () => {\n// return {\n// [`sreq.${ModelSchedulerRequestFields.scheduler_request_id}`]: \"scheduler_request_id\",\n// [`sreq.${ModelSchedulerRequestFields.integration_id}`]: \"integration_id\",\n// [`sreq.${ModelSchedulerRequestFields.field_module}`]: \"field_module\",\n// [`sreq.${ModelSchedulerRequestFields.field_ref}`]: \"field_ref\",\n// [`sreq.${ModelSchedulerRequestFields.source_entity_id}`]: \"source_entity_id\",\n// [`sreq.${ModelSchedulerRequestFields.source_entity_label}`]: \"source_entity_label\",\n// [`sreq.${ModelSchedulerRequestFields.source_entity_data}`]: \"source_entity_data\",\n// [`sreq.${ModelSchedulerRequestFields.destination_entity_id}`]: \"destination_entity_id\",\n// [`sreq.${ModelSchedulerRequestFields.destination_entity_label}`]: \"destination_entity_label\",\n// [`sreq.${ModelSchedulerRequestFields.request_action}`]: \"request_action\",\n// [`sreq.${ModelSchedulerRequestFields.attempt_datetime}`]: \"attempt_datetime\",\n// [`sreq.${ModelSchedulerRequestFields.attempt_no}::float`]: \"attempt_no\",\n// [`sreq.${ModelSchedulerRequestFields.attempt_result}`]: \"attempt_result\",\n// [`sreq.${ModelSchedulerRequestFields.attempt_status}`]: \"attempt_status\",\n// }\n// }\n\n// export const buildSchedulerLogDefaultSqlSelect = () => {\n// return {\n// [`slog.${ModelSchedulerLogFields.createdatetime}`]: \"createdatetime\",\n// [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n// [`slog.${ModelSchedulerLogFields.updatedatetime}`]: \"updatedatetime\",\n// [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n// [`slog.${ModelSchedulerLogFields.isdelete}`]: \"isdelete\",\n// [`slog.${ModelSchedulerLogFields.istrash}`]: \"istrash\",\n// [`slog.${ModelSchedulerLogFields.accountid}`]: \"accountid\",\n// }\n// }\n\n// export const buildSchedulerRequestDefaultSqlSelect = () => {\n// return {\n// [`sreq.${ModelSchedulerRequestFields.createdatetime}`]: \"createdatetime\",\n// [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n// [`sreq.${ModelSchedulerRequestFields.updatedatetime}`]: \"updatedatetime\",\n// [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n// [`sreq.${ModelSchedulerRequestFields.isdelete}`]: \"isdelete\",\n// [`sreq.${ModelSchedulerRequestFields.istrash}`]: \"istrash\",\n// [`sreq.${ModelSchedulerRequestFields.accountid}`]: \"accountid\",\n// }\n// }"]}
@@ -0,0 +1,10 @@
1
+ export declare const getUserBranchRelationMaps: () => {
2
+ sqlRelationMaps: Record<"creator" | "updater" | "area" | "cou" | "state", string>;
3
+ relationKeys: {
4
+ cou: string;
5
+ state: string;
6
+ area: string;
7
+ creator: string;
8
+ updater: string;
9
+ };
10
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ // import {
3
+ // ModelUserFields,
4
+ // ModelSchedulerLogFields,
5
+ // ModelSchedulerRequestFields
6
+ // } from "../../models"
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getUserBranchRelationMaps = void 0;
9
+ const queryBuilder_1 = require("./queryBuilder");
10
+ const getUserBranchRelationMaps = () => {
11
+ let relationKeys = {
12
+ cou: "cou",
13
+ state: "state",
14
+ area: "area",
15
+ creator: "creator",
16
+ updater: "updater"
17
+ };
18
+ let sqlRelationMaps = {
19
+ cou: (0, queryBuilder_1.buildSqlRelation)("left", "brn", "countries", "cou", ["brn.country_id = cou.country_id", "cou.isdelete = false", "cou.istrash = false"]),
20
+ state: (0, queryBuilder_1.buildSqlRelation)("left", "brn", "states", "state", ["brn.state_id = state.state_id", "state.isdelete = false", "state.istrash = false"]),
21
+ area: (0, queryBuilder_1.buildSqlRelation)("left", "brn", "areas", "area", ["brn.area_id = area.area_id", "area.isdelete = false", "area.istrash = false"]),
22
+ creator: (0, queryBuilder_1.buildSqlRelation)("left", "brn", "users", "creator", ["brn.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
23
+ updater: (0, queryBuilder_1.buildSqlRelation)("left", "brn", "users", "updater", ["brn.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
24
+ };
25
+ return {
26
+ sqlRelationMaps,
27
+ relationKeys
28
+ };
29
+ };
30
+ exports.getUserBranchRelationMaps = getUserBranchRelationMaps;
31
+ //# sourceMappingURL=queryUserBranch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryUserBranch.js","sourceRoot":"","sources":["../../../src/lib/query_builder/queryUserBranch.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,uBAAuB;AACvB,+BAA+B;AAC/B,kCAAkC;AAClC,oBAAoB;;;AAEpB,iDAAkD;AAE3C,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAE1C,IAAI,YAAY,GAAG;QACf,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;KACrB,CAAC;IAEF,IAAI,eAAe,GAA2E;QAC1F,GAAG,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;QAC5I,KAAK,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,+BAA+B,EAAE,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;QAC/I,IAAI,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,4BAA4B,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;QACvI,OAAO,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,oCAAoC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;QAC3J,OAAO,EAAE,IAAA,+BAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,oCAAoC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;KAC9J,CAAC;IAEF,OAAO;QACH,eAAe;QACf,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AAvBY,QAAA,yBAAyB,6BAuBrC","sourcesContent":["// import {\n// ModelUserFields,\n// ModelSchedulerLogFields,\n// ModelSchedulerRequestFields\n// } from \"@/models\"\n\nimport { buildSqlRelation } from \"./queryBuilder\";\n\nexport const getUserBranchRelationMaps = () => {\n\n let relationKeys = {\n cou: \"cou\",\n state: \"state\",\n area: \"area\",\n creator: \"creator\",\n updater: \"updater\"\n };\n\n let sqlRelationMaps: Record<keyof typeof relationKeys, ReturnType<typeof buildSqlRelation>> = {\n cou: buildSqlRelation(\"left\", \"brn\", \"countries\", \"cou\", [\"brn.country_id = cou.country_id\", \"cou.isdelete = false\", \"cou.istrash = false\"]),\n state: buildSqlRelation(\"left\", \"brn\", \"states\", \"state\", [\"brn.state_id = state.state_id\", \"state.isdelete = false\", \"state.istrash = false\"]),\n area: buildSqlRelation(\"left\", \"brn\", \"areas\", \"area\", [\"brn.area_id = area.area_id\", \"area.isdelete = false\", \"area.istrash = false\"]),\n creator: buildSqlRelation(\"left\", \"brn\", \"users\", \"creator\", [\"brn.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n updater: buildSqlRelation(\"left\", \"brn\", \"users\", \"updater\", [\"brn.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n };\n\n return {\n sqlRelationMaps,\n relationKeys\n }\n\n}\n"]}
@@ -45,9 +45,9 @@ export type UserBranchUpdateProps = {
45
45
  };
46
46
  export declare const UserBranchService: (props: UserBranchServiceProps) => {
47
47
  getUserBranch: ({ userBranchId, datatypes }: UserBranchGetProps) => Promise<any>;
48
- getUserBranchByUserId: ({ userId, onlyHQ, limit, datatypes }: UserBranchByUserIdGetProps) => Promise<any[]>;
48
+ getUserBranchByUserId: ({ userId, onlyHQ, limit, datatypes }: UserBranchByUserIdGetProps) => Promise<any>;
49
49
  listUserBranches: ({ limit, offset, filters, sortfield, sortorder, datatypes }: UserBranchListProps) => Promise<{
50
- data: any[];
50
+ data: any;
51
51
  total: number;
52
52
  }>;
53
53
  getUserBranchDataTypes: () => any[];
@@ -76,6 +76,7 @@ let defaultSqlSelect = {
76
76
  [`brn.${models_1.ModelUserBranchFields.istrash}`]: "istrash",
77
77
  [`brn.${models_1.ModelUserBranchFields.accountid}`]: "accountid",
78
78
  };
79
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getUserBranchRelationMaps)();
79
80
  const UserBranchService = (props) => {
80
81
  const { userBranchType = "branch", ...rest } = props;
81
82
  const userBranchModel = (0, models_1.UserBranchModel)({ ...rest });
@@ -143,12 +144,19 @@ const UserBranchService = (props) => {
143
144
  (0, lib_1.buildSqlSelect)(``, regionSqlSelect),
144
145
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
145
146
  ];
147
+ // sqlRelation = [
148
+ // buildSqlRelation("left", "brn", "countries", "cou", ["brn.country_id = cou.country_id", "cou.isdelete = false", "cou.istrash = false"]),
149
+ // buildSqlRelation("left", "brn", "states", "state", ["brn.state_id = state.state_id", "state.isdelete = false", "state.istrash = false"]),
150
+ // buildSqlRelation("left", "brn", "areas", "area", ["brn.area_id = area.area_id", "area.isdelete = false", "area.istrash = false"]),
151
+ // buildSqlRelation("left", "brn", "users", "creator", ["brn.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
152
+ // buildSqlRelation("left", "brn", "users", "updater", ["brn.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
153
+ // ]
146
154
  sqlRelation = [
147
- (0, lib_1.buildSqlRelation)("left", "brn", "countries", "cou", ["brn.country_id = cou.country_id", "cou.isdelete = false", "cou.istrash = false"]),
148
- (0, lib_1.buildSqlRelation)("left", "brn", "states", "state", ["brn.state_id = state.state_id", "state.isdelete = false", "state.istrash = false"]),
149
- (0, lib_1.buildSqlRelation)("left", "brn", "areas", "area", ["brn.area_id = area.area_id", "area.isdelete = false", "area.istrash = false"]),
150
- (0, lib_1.buildSqlRelation)("left", "brn", "users", "creator", ["brn.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
151
- (0, lib_1.buildSqlRelation)("left", "brn", "users", "updater", ["brn.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
155
+ sqlRelationMaps.cou,
156
+ sqlRelationMaps.state,
157
+ sqlRelationMaps.area,
158
+ sqlRelationMaps.creator,
159
+ sqlRelationMaps.updater
152
160
  ];
153
161
  // sqlRelationAgg = [
154
162
  // buildSqlRelation("left", "brn", "document_items", "docitm", ["brn.document_id = docitm.document_id", "docitm.isdelete = false", "docitm.istrash = false"]),
@@ -192,33 +200,56 @@ const UserBranchService = (props) => {
192
200
  let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
193
201
  let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
194
202
  // get the data (pagination)
195
- const sqlRaw = (0, lib_1.buildSqlRawSelect)({
196
- tableName: "branches",
197
- mainAlias: "brn",
198
- accountId: rest.accountId,
199
- sqlSelect: [...sqlSelect, ...sqlSelectAgg],
200
- sqlRelation: [...sqlRelation, ...sqlRelationAgg],
201
- sqlWhere,
202
- sqlGroupBy,
203
- sqlOrderby,
204
- sqlLimitOffset
205
- });
206
- let data = await userBranchModel.raw(sqlRaw);
207
- // get the count
208
- const sqlRawCount = (0, lib_1.buildSqlRawSelectCount)({
203
+ // const sqlRaw = buildSqlRawSelect({
204
+ // tableName: "branches",
205
+ // mainAlias: "brn",
206
+ // accountId: rest.accountId,
207
+ // sqlSelect: [...sqlSelect, ...sqlSelectAgg],
208
+ // sqlRelation: [...sqlRelation, ...sqlRelationAgg],
209
+ // sqlWhere,
210
+ // sqlGroupBy,
211
+ // sqlOrderby,
212
+ // sqlLimitOffset
213
+ // })
214
+ // let data = await userBranchModel.raw(sqlRaw)
215
+ // // get the count
216
+ // const sqlRawCount = buildSqlRawSelectCount({
217
+ // tableName: "branches",
218
+ // mainAlias: "brn",
219
+ // accountId: rest.accountId,
220
+ // sqlSelect,
221
+ // sqlRelation,
222
+ // sqlWhere,
223
+ // sqlGroupBy,
224
+ // sqlOrderby
225
+ // })
226
+ // let count = await userBranchModel.raw(sqlRawCount)
227
+ // const response = {
228
+ // data,
229
+ // total: data.length ? Number(count[0].filtered_count) : 0
230
+ // }
231
+ // get the listing data & count
232
+ const { data, total } = await (0, lib_1.getListWithCount)({
233
+ model: userBranchModel,
209
234
  tableName: "branches",
210
235
  mainAlias: "brn",
236
+ countKey: `${models_1.ModelUserBranchFields.branch_id}`,
211
237
  accountId: rest.accountId,
238
+ sqlRelationMaps,
239
+ filters,
240
+ filterColumns,
212
241
  sqlSelect,
242
+ sqlSelectAgg,
213
243
  sqlRelation,
244
+ sqlRelationAgg,
214
245
  sqlWhere,
215
246
  sqlGroupBy,
216
- sqlOrderby
247
+ sqlOrderby,
248
+ sqlLimitOffset
217
249
  });
218
- let count = await userBranchModel.raw(sqlRawCount);
219
250
  const response = {
220
251
  data,
221
- total: data.length ? Number(count[0].filtered_count) : 0
252
+ total
222
253
  };
223
254
  return response;
224
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserBranchService.js","sourceRoot":"","sources":["../../../src/services/branch/UserBranchService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n UserBranchModel,\n ModelUserFields,\n ModelUserBranchFields,\n ModelCountryFields,\n ModelStateFields,\n ModelAreaFields\n} from \"@/models\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect, buildSqlRawSelectCount } from \"@/lib\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\nimport { DefaultServiceProps } from \"@/utils\";\n\nexport const userBranchUserTypes = {\n customer: \"customer\",\n retailer: \"retailer\"\n}\n\nexport const userBranchTypes = {\n branch: \"branch\",\n branch_shipping: \"branch_shipping\",\n shipping_address: \"shipping_address\"\n} as const\n\nexport type UserBranchType = typeof userBranchTypes[keyof typeof userBranchTypes]\n\nexport type UserBranchUserType = typeof userBranchUserTypes[keyof typeof userBranchUserTypes]\n\nexport type UserBranchServiceProps = DefaultServiceProps & {\n userBranchUserType: UserBranchUserType,\n userBranchType: UserBranchType,\n};\n\nexport type UserBranchGetProps = QueryGet & {\n userBranchId: number,\n};\n\nexport type UserBranchByUserIdGetProps = QueryGet & {\n userId: number,\n onlyHQ?: boolean\n limit?: number\n};\n\nexport type UserBranchListProps = QueryList & {\n // id: number,\n};\n\nexport type UserBranchRemoveProps = {\n userBranchIds: number[]\n};\n\nexport type UserBranchCreateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\nexport type UserBranchUpdateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\n// const getCreatePayload = (branchType: BranchType, data: UserBranchCreateProps[\"data\"]) => {\n\n// if (branchType === \"administrator\" && \"administrator\" in data) {\n\n// return {\n// user_type: branchType,\n// // file_name: data.driverImage.filename,\n// // content_type: data.driverImage.contentType,\n// // bucket_name: data.driverImage.bucketName,\n// // project_id: data.driverImage.projectId,\n// // foldername_year: data.driverImage.foldernameYear,\n// // foldername_month: data.driverImage.foldernameMonth,\n// // foldername_day: data.driverImage.foldernameDay,\n// // upload_type: data.driverImage.uploadType,\n// // buffer_file_name: data.driverImage.bufferFilename,\n// // asset_url: data.driverImage.assetUrl,\n// // reference_id: data.driverImage.referenceId,\n// // reference_label: data.driverImage.referenceLabel,\n// // reference_type: data.driverImage.referenceType,\n// // batch_code: data?.driverImage?.batchCode ?? \"\",\n// // file_size_bytes: data.driverImage.fileSizeBytes,\n// // file_compress_format: data.driverImage.fileCompressFormat,\n// // request_file_size_bytes: data.driverImage.requestFileSizeBytes,\n// // request_file_name: data.driverImage.requestFilename,\n// // reference2_id: data.driverImage.reference2Id,\n// // reference2_label: data.driverImage.reference2Label,\n// // reference2_type: data.driverImage.reference2Type,\n// }\n// }\n\n// return false\n\n// }\n\nlet mainSqlSelect = {\n [`brn.${ModelUserBranchFields.branch_id}`]: \"branch_id\",\n [`brn.${ModelUserBranchFields.user_id}`]: \"user_id\",\n [`brn.${ModelUserBranchFields.area_id}`]: \"area_id\",\n [`brn.${ModelUserBranchFields.state_id}`]: \"state_id\",\n [`brn.${ModelUserBranchFields.country_id}`]: \"country_id\",\n [`brn.${ModelUserBranchFields.address_1}`]: \"address_1\",\n [`brn.${ModelUserBranchFields.address_2}`]: \"address_2\",\n [`brn.${ModelUserBranchFields.branch_code}`]: \"branch_code\",\n [`brn.${ModelUserBranchFields.branch_contact}`]: \"branch_contact\",\n [`brn.${ModelUserBranchFields.branch_email}`]: \"branch_email\",\n [`brn.${ModelUserBranchFields.branch_name}`]: \"branch_name\",\n [`brn.${ModelUserBranchFields.status}`]: \"status\",\n [`brn.${ModelUserBranchFields.is_hq}`]: \"is_hq\",\n [`brn.${ModelUserBranchFields.pic_contact}`]: \"pic_contact\",\n [`brn.${ModelUserBranchFields.pic_email}`]: \"pic_email\",\n [`brn.${ModelUserBranchFields.pic_name}`]: \"pic_name\",\n [`brn.${ModelUserBranchFields.postcode}`]: \"postcode\",\n [`brn.${ModelUserBranchFields.remark}`]: \"remark\",\n [`brn.${ModelUserBranchFields.type}`]: \"type\",\n}\n\nlet regionSqlSelect = {\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n}\n\nlet defaultSqlSelect = {\n [`brn.${ModelUserBranchFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brn.${ModelUserBranchFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brn.${ModelUserBranchFields.isdelete}`]: \"isdelete\",\n [`brn.${ModelUserBranchFields.istrash}`]: \"istrash\",\n [`brn.${ModelUserBranchFields.accountid}`]: \"accountid\",\n}\n\nexport const UserBranchService = (props: UserBranchServiceProps) => {\n\n const {\n userBranchType = \"branch\",\n ...rest\n } = props\n\n const userBranchModel = UserBranchModel({ ...rest })\n\n // const createUserBranch = async ({ data, branchType: overrideBranchType }: UserBranchCreateProps) => {\n\n // const _branchType = overrideBranchType || branchType\n\n // const _data = getCreatePayload(_branchType, data)\n\n // if (!_data) {\n // throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n // }\n\n // const response = await userModel.create({ data: _data, createUserId: 0 })\n\n // return response\n // }\n\n const getUserBranch = async ({ userBranchId, datatypes = [] }: UserBranchGetProps) => {\n\n // let data: any = {}\n\n // if (branchType === \"branch\") {\n // // data = await customerService.getCustomer({ id, datatypes: datatypes as CustomerGetProps[\"datatypes\"] })\n // }\n\n // if (branchType === \"branch_shipping\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n // if (branchType === \"shipping_address\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n let { data } = await listUserBranches({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUserBranchFields.branch_id}`, operator: \"=\", value: userBranchId }],\n sortfield: `${ModelUserBranchFields.branch_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n // if (!data) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n const getUserBranchByUserId = async ({ userId, onlyHQ = false, limit = 100, datatypes = [] }: UserBranchByUserIdGetProps) => {\n\n let filters = [\n { field: `${ModelUserBranchFields.user_id}`, operator: \"=\", value: userId }\n ] as any\n\n if (onlyHQ === true) {\n filters.push({\n field: `${ModelUserBranchFields.is_hq}`, operator: \"=\", value: 1\n })\n }\n\n let { data } = await listUserBranches({\n limit,\n offset: 0,\n filters,\n sortfield: `${ModelUserBranchFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data\n };\n\n const listUserBranches = async ({\n limit,\n offset,\n filters = [],\n sortfield,\n sortorder,\n datatypes = []\n }: UserBranchListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n sqlRelation = [\n buildSqlRelation(\"left\", \"brn\", \"countries\", \"cou\", [\"brn.country_id = cou.country_id\", \"cou.isdelete = false\", \"cou.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"states\", \"state\", [\"brn.state_id = state.state_id\", \"state.isdelete = false\", \"state.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"areas\", \"area\", [\"brn.area_id = area.area_id\", \"area.isdelete = false\", \"area.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"users\", \"creator\", [\"brn.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"brn\", \"users\", \"updater\", [\"brn.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"brn\", \"document_items\", \"docitm\", [\"brn.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(regionSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...regionSqlSelect,\n ...defaultSqlSelect\n }\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"dif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...salesOrderInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, salesOrderInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brn\", \"document_injection_fields\", \"dif\", [\"brn.document_id = dif.document_id\", \"dif.field_ref = 'document'\", `dif.field_module = '${documentTypeKey.toLowerCase()}'`, \"dif.isdelete = false\", \"dif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(salesOrderInjectionFieldSqlSelect)]\n // }\n\n // let itemSqlSelectAgg = buildDocumentItemSqlSelectAgg()\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderItemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document_item\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"difi\", activeInjectionFields)\n\n // if (Object.entries(salesOrderItemInjectionFieldSqlSelect).length > 0) {\n // Object.entries(salesOrderItemInjectionFieldSqlSelect).map(([col, alias]) => {\n // itemSqlSelectAgg.push(`'${alias}', ${col}`)\n // })\n // }\n\n // sqlRelationAgg = [...sqlRelationAgg, buildSqlRelation(\"left\", \"docitm\", \"document_injection_fields\", \"difi\", [\"docitm.document_item_id = difi.document_item_id\", \"difi.field_ref = 'document_item'\", `difi.field_module = '${documentTypeKey.toLowerCase()}'`, \"difi.isdelete = false\", \"difi.istrash = false\"])]\n\n // }\n\n // let itemSqlSelect = buildDocumentItemSqlSelect(itemSqlSelectAgg)\n\n // sqlSelectAgg = [...sqlSelectAgg, ...[buildSqlSelect(``, itemSqlSelect)]]\n\n let sqlWhere = [\n `brn.isdelete = false`,\n `brn.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 // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName: \"branches\",\n mainAlias: \"brn\",\n accountId: rest.accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await userBranchModel.raw(sqlRaw)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName: \"branches\",\n mainAlias: \"brn\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby\n })\n\n let count = await userBranchModel.raw(sqlRawCount)\n\n const response = {\n data,\n total: data.length ? Number(count[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n // const removeUserBranches = async ({ userBranchIds }: UserBranchRemoveProps): Promise<User[] | null> => {\n\n // if (!userBranchIds.length) throwError('id is required');\n\n // const response = await userModel.trash({ userBranchIds, updateUserId: actionUserId });\n\n // return response\n // };\n\n const getUserBranchDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (userBranchType === \"branch\") {\n // data = customerService.getDataTypes()\n }\n\n // const data = await userModel.list(payload);\n\n // if (!data?.file_id) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n return {\n // uploadFileByBuffer,\n getUserBranch,\n getUserBranchByUserId,\n listUserBranches,\n // removeUsers,\n getUserBranchDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"UserBranchService.js","sourceRoot":"","sources":["../../../src/services/branch/UserBranchService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n UserBranchModel,\n ModelUserFields,\n ModelUserBranchFields,\n ModelCountryFields,\n ModelStateFields,\n ModelAreaFields\n} from \"@/models\";\n\nimport { buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount, getUserBranchRelationMaps } from \"@/lib\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\nimport { DefaultServiceProps } from \"@/utils\";\n\nexport const userBranchUserTypes = {\n customer: \"customer\",\n retailer: \"retailer\"\n}\n\nexport const userBranchTypes = {\n branch: \"branch\",\n branch_shipping: \"branch_shipping\",\n shipping_address: \"shipping_address\"\n} as const\n\nexport type UserBranchType = typeof userBranchTypes[keyof typeof userBranchTypes]\n\nexport type UserBranchUserType = typeof userBranchUserTypes[keyof typeof userBranchUserTypes]\n\nexport type UserBranchServiceProps = DefaultServiceProps & {\n userBranchUserType: UserBranchUserType,\n userBranchType: UserBranchType,\n};\n\nexport type UserBranchGetProps = QueryGet & {\n userBranchId: number,\n};\n\nexport type UserBranchByUserIdGetProps = QueryGet & {\n userId: number,\n onlyHQ?: boolean\n limit?: number\n};\n\nexport type UserBranchListProps = QueryList & {\n // id: number,\n};\n\nexport type UserBranchRemoveProps = {\n userBranchIds: number[]\n};\n\nexport type UserBranchCreateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\nexport type UserBranchUpdateProps = {\n userBranchType?: UserBranchType,\n data:\n // driver_image\n {\n administrator: {\n filename: string;\n // contentType: string;\n // bucketName: string;\n // projectId: string;\n // foldernameYear: string;\n // foldernameMonth: string;\n // foldernameDay: string;\n // uploadType: FileUploadType,\n // bufferFilename: string,\n // assetUrl: string,\n // referenceId: string,\n // referenceLabel: string,\n // referenceType: string,\n // batchCode?: string,\n // fileSizeBytes: number,\n // fileCompressFormat: FileCompressFormat,\n // requestFileSizeBytes: number,\n // requestFilename: string,\n // reference2Id: string,\n // reference2Label: string,\n // reference2Type: string,\n }\n }\n}\n\n// const getCreatePayload = (branchType: BranchType, data: UserBranchCreateProps[\"data\"]) => {\n\n// if (branchType === \"administrator\" && \"administrator\" in data) {\n\n// return {\n// user_type: branchType,\n// // file_name: data.driverImage.filename,\n// // content_type: data.driverImage.contentType,\n// // bucket_name: data.driverImage.bucketName,\n// // project_id: data.driverImage.projectId,\n// // foldername_year: data.driverImage.foldernameYear,\n// // foldername_month: data.driverImage.foldernameMonth,\n// // foldername_day: data.driverImage.foldernameDay,\n// // upload_type: data.driverImage.uploadType,\n// // buffer_file_name: data.driverImage.bufferFilename,\n// // asset_url: data.driverImage.assetUrl,\n// // reference_id: data.driverImage.referenceId,\n// // reference_label: data.driverImage.referenceLabel,\n// // reference_type: data.driverImage.referenceType,\n// // batch_code: data?.driverImage?.batchCode ?? \"\",\n// // file_size_bytes: data.driverImage.fileSizeBytes,\n// // file_compress_format: data.driverImage.fileCompressFormat,\n// // request_file_size_bytes: data.driverImage.requestFileSizeBytes,\n// // request_file_name: data.driverImage.requestFilename,\n// // reference2_id: data.driverImage.reference2Id,\n// // reference2_label: data.driverImage.reference2Label,\n// // reference2_type: data.driverImage.reference2Type,\n// }\n// }\n\n// return false\n\n// }\n\nlet mainSqlSelect = {\n [`brn.${ModelUserBranchFields.branch_id}`]: \"branch_id\",\n [`brn.${ModelUserBranchFields.user_id}`]: \"user_id\",\n [`brn.${ModelUserBranchFields.area_id}`]: \"area_id\",\n [`brn.${ModelUserBranchFields.state_id}`]: \"state_id\",\n [`brn.${ModelUserBranchFields.country_id}`]: \"country_id\",\n [`brn.${ModelUserBranchFields.address_1}`]: \"address_1\",\n [`brn.${ModelUserBranchFields.address_2}`]: \"address_2\",\n [`brn.${ModelUserBranchFields.branch_code}`]: \"branch_code\",\n [`brn.${ModelUserBranchFields.branch_contact}`]: \"branch_contact\",\n [`brn.${ModelUserBranchFields.branch_email}`]: \"branch_email\",\n [`brn.${ModelUserBranchFields.branch_name}`]: \"branch_name\",\n [`brn.${ModelUserBranchFields.status}`]: \"status\",\n [`brn.${ModelUserBranchFields.is_hq}`]: \"is_hq\",\n [`brn.${ModelUserBranchFields.pic_contact}`]: \"pic_contact\",\n [`brn.${ModelUserBranchFields.pic_email}`]: \"pic_email\",\n [`brn.${ModelUserBranchFields.pic_name}`]: \"pic_name\",\n [`brn.${ModelUserBranchFields.postcode}`]: \"postcode\",\n [`brn.${ModelUserBranchFields.remark}`]: \"remark\",\n [`brn.${ModelUserBranchFields.type}`]: \"type\",\n}\n\nlet regionSqlSelect = {\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n}\n\nlet defaultSqlSelect = {\n [`brn.${ModelUserBranchFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brn.${ModelUserBranchFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brn.${ModelUserBranchFields.isdelete}`]: \"isdelete\",\n [`brn.${ModelUserBranchFields.istrash}`]: \"istrash\",\n [`brn.${ModelUserBranchFields.accountid}`]: \"accountid\",\n}\n\nconst { relationKeys, sqlRelationMaps } = getUserBranchRelationMaps()\n\nexport const UserBranchService = (props: UserBranchServiceProps) => {\n\n const {\n userBranchType = \"branch\",\n ...rest\n } = props\n\n const userBranchModel = UserBranchModel({ ...rest })\n\n // const createUserBranch = async ({ data, branchType: overrideBranchType }: UserBranchCreateProps) => {\n\n // const _branchType = overrideBranchType || branchType\n\n // const _data = getCreatePayload(_branchType, data)\n\n // if (!_data) {\n // throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n // }\n\n // const response = await userModel.create({ data: _data, createUserId: 0 })\n\n // return response\n // }\n\n const getUserBranch = async ({ userBranchId, datatypes = [] }: UserBranchGetProps) => {\n\n // let data: any = {}\n\n // if (branchType === \"branch\") {\n // // data = await customerService.getCustomer({ id, datatypes: datatypes as CustomerGetProps[\"datatypes\"] })\n // }\n\n // if (branchType === \"branch_shipping\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n // if (branchType === \"shipping_address\") {\n // // data = await administratorService.getAdministrator({ id, })\n // }\n\n let { data } = await listUserBranches({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUserBranchFields.branch_id}`, operator: \"=\", value: userBranchId }],\n sortfield: `${ModelUserBranchFields.branch_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n // if (!data) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n const getUserBranchByUserId = async ({ userId, onlyHQ = false, limit = 100, datatypes = [] }: UserBranchByUserIdGetProps) => {\n\n let filters = [\n { field: `${ModelUserBranchFields.user_id}`, operator: \"=\", value: userId }\n ] as any\n\n if (onlyHQ === true) {\n filters.push({\n field: `${ModelUserBranchFields.is_hq}`, operator: \"=\", value: 1\n })\n }\n\n let { data } = await listUserBranches({\n limit,\n offset: 0,\n filters,\n sortfield: `${ModelUserBranchFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data\n };\n\n const listUserBranches = async ({\n limit,\n offset,\n filters = [],\n sortfield,\n sortorder,\n datatypes = []\n }: UserBranchListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n // sqlRelation = [\n // buildSqlRelation(\"left\", \"brn\", \"countries\", \"cou\", [\"brn.country_id = cou.country_id\", \"cou.isdelete = false\", \"cou.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"states\", \"state\", [\"brn.state_id = state.state_id\", \"state.isdelete = false\", \"state.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"areas\", \"area\", [\"brn.area_id = area.area_id\", \"area.isdelete = false\", \"area.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"users\", \"creator\", [\"brn.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n // buildSqlRelation(\"left\", \"brn\", \"users\", \"updater\", [\"brn.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n // ]\n\n sqlRelation = [\n sqlRelationMaps.cou,\n sqlRelationMaps.state,\n sqlRelationMaps.area,\n sqlRelationMaps.creator,\n sqlRelationMaps.updater\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"brn\", \"document_items\", \"docitm\", [\"brn.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(regionSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...regionSqlSelect,\n ...defaultSqlSelect\n }\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"dif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...salesOrderInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, salesOrderInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brn\", \"document_injection_fields\", \"dif\", [\"brn.document_id = dif.document_id\", \"dif.field_ref = 'document'\", `dif.field_module = '${documentTypeKey.toLowerCase()}'`, \"dif.isdelete = false\", \"dif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(salesOrderInjectionFieldSqlSelect)]\n // }\n\n // let itemSqlSelectAgg = buildDocumentItemSqlSelectAgg()\n\n // if (datatypes.includes(salesOrderDataTypes.salesOrderItemInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"document_item\", documentTypeKey.toLowerCase() as any)\n\n // const salesOrderItemInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"difi\", activeInjectionFields)\n\n // if (Object.entries(salesOrderItemInjectionFieldSqlSelect).length > 0) {\n // Object.entries(salesOrderItemInjectionFieldSqlSelect).map(([col, alias]) => {\n // itemSqlSelectAgg.push(`'${alias}', ${col}`)\n // })\n // }\n\n // sqlRelationAgg = [...sqlRelationAgg, buildSqlRelation(\"left\", \"docitm\", \"document_injection_fields\", \"difi\", [\"docitm.document_item_id = difi.document_item_id\", \"difi.field_ref = 'document_item'\", `difi.field_module = '${documentTypeKey.toLowerCase()}'`, \"difi.isdelete = false\", \"difi.istrash = false\"])]\n\n // }\n\n // let itemSqlSelect = buildDocumentItemSqlSelect(itemSqlSelectAgg)\n\n // sqlSelectAgg = [...sqlSelectAgg, ...[buildSqlSelect(``, itemSqlSelect)]]\n\n let sqlWhere = [\n `brn.isdelete = false`,\n `brn.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 // get the data (pagination)\n // const sqlRaw = buildSqlRawSelect({\n // tableName: \"branches\",\n // mainAlias: \"brn\",\n // accountId: rest.accountId,\n // sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n // sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // let data = await userBranchModel.raw(sqlRaw)\n\n // // get the count\n // const sqlRawCount = buildSqlRawSelectCount({\n // tableName: \"branches\",\n // mainAlias: \"brn\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby\n // })\n\n // let count = await userBranchModel.raw(sqlRawCount)\n\n // const response = {\n // data,\n // total: data.length ? Number(count[0].filtered_count) : 0\n // }\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: userBranchModel,\n tableName: \"branches\",\n mainAlias: \"brn\",\n countKey: `${ModelUserBranchFields.branch_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n // const removeUserBranches = async ({ userBranchIds }: UserBranchRemoveProps): Promise<User[] | null> => {\n\n // if (!userBranchIds.length) throwError('id is required');\n\n // const response = await userModel.trash({ userBranchIds, updateUserId: actionUserId });\n\n // return response\n // };\n\n const getUserBranchDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (userBranchType === \"branch\") {\n // data = customerService.getDataTypes()\n }\n\n // const data = await userModel.list(payload);\n\n // if (!data?.file_id) {\n // throw new Error(`Invalid id: ${id}`);\n // }\n\n return data\n };\n\n return {\n // uploadFileByBuffer,\n getUserBranch,\n getUserBranchByUserId,\n listUserBranches,\n // removeUsers,\n getUserBranchDataTypes\n }\n\n}\n\n"]}
@@ -10,6 +10,7 @@ exports.documentProfileTypes = {
10
10
  shipping: "shipping",
11
11
  billing: "billing"
12
12
  };
13
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getDocumentProfileRelationMaps)();
13
14
  const getCreatePayload = (documentId, documentType, data) => {
14
15
  return {
15
16
  [`${models_1.ModelDocumentProfileFields.document_id}`]: documentId,
@@ -268,9 +269,13 @@ const DocumentProfileService = (props) => {
268
269
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
269
270
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
270
271
  ];
272
+ // sqlRelation = [
273
+ // buildSqlRelation("left", "docpro", "users", "creator", ["docpro.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
274
+ // buildSqlRelation("left", "docpro", "users", "updater", ["docpro.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
275
+ // ]
271
276
  sqlRelation = [
272
- (0, lib_1.buildSqlRelation)("left", "docpro", "users", "creator", ["docpro.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
273
- (0, lib_1.buildSqlRelation)("left", "docpro", "users", "updater", ["docpro.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
277
+ sqlRelationMaps.creator,
278
+ sqlRelationMaps.updater
274
279
  ];
275
280
  // sqlRelationAgg = [
276
281
  // buildSqlRelation("left", "docpro", "document_items", "docitm", ["docpro.document_id = docitm.document_id", "docitm.isdelete = false", "docitm.istrash = false"]),
@@ -291,34 +296,57 @@ const DocumentProfileService = (props) => {
291
296
  let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
292
297
  let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
293
298
  // get the data (pagination)
294
- const sqlRaw = (0, lib_1.buildSqlRawSelect)({
295
- tableName: "document_profiles",
296
- mainAlias: "docpro",
297
- accountId: rest.accountId,
298
- sqlSelect: [...sqlSelect, ...sqlSelectAgg],
299
- sqlRelation: [...sqlRelation, ...sqlRelationAgg],
300
- sqlWhere,
301
- sqlGroupBy,
302
- sqlOrderby,
303
- sqlLimitOffset
304
- });
305
- let data = await documentModel.raw(sqlRaw);
306
- // get the count
307
- const sqlRawCount = (0, lib_1.buildSqlRawSelectCount)({
299
+ // const sqlRaw = buildSqlRawSelect({
300
+ // tableName: "document_profiles",
301
+ // mainAlias: "docpro",
302
+ // accountId: rest.accountId,
303
+ // sqlSelect: [...sqlSelect, ...sqlSelectAgg],
304
+ // sqlRelation: [...sqlRelation, ...sqlRelationAgg],
305
+ // sqlWhere,
306
+ // sqlGroupBy,
307
+ // sqlOrderby,
308
+ // sqlLimitOffset
309
+ // })
310
+ // let data = await documentModel.raw(sqlRaw)
311
+ // // get the count
312
+ // const sqlRawCount = buildSqlRawSelectCount({
313
+ // tableName: "document_profiles",
314
+ // mainAlias: "docpro",
315
+ // accountId: rest.accountId,
316
+ // sqlSelect,
317
+ // sqlRelation,
318
+ // sqlWhere,
319
+ // sqlGroupBy,
320
+ // sqlOrderby
321
+ // })
322
+ // let count = await documentModel.raw(sqlRawCount)
323
+ // get the listing data & count
324
+ const { data, total } = await (0, lib_1.getListWithCount)({
325
+ model: documentModel,
308
326
  tableName: "document_profiles",
309
327
  mainAlias: "docpro",
328
+ countKey: `${models_1.ModelDocumentProfileFields.document_profile_id}`,
310
329
  accountId: rest.accountId,
330
+ sqlRelationMaps,
331
+ filters,
332
+ filterColumns,
311
333
  sqlSelect,
334
+ sqlSelectAgg,
312
335
  sqlRelation,
336
+ sqlRelationAgg,
313
337
  sqlWhere,
314
338
  sqlGroupBy,
315
- sqlOrderby
339
+ sqlOrderby,
340
+ sqlLimitOffset
316
341
  });
317
- let count = await documentModel.raw(sqlRawCount);
318
342
  const response = {
319
343
  data,
320
- total: data.length ? Number(count[0].filtered_count) : 0
344
+ total
321
345
  };
346
+ // const response = {
347
+ // data,
348
+ // total: data.length ? Number(count[0].filtered_count) : 0
349
+ // }
322
350
  return response;
323
351
  };
324
352
  const removeDocumentProfiles = async ({ documentIds }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentProfileService.js","sourceRoot":"","sources":["../../../src/services/document/DocumentProfileService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DocumentModel,\n DocumentProfileModel,\n ModelDocumentProfileFields,\n ModelUserFields\n} from \"@/models\";\n\nimport { dayjs, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { UserBranchService } from \"@/services\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DocumentType } from \"./DocumentService\"\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlRawSelectCount, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport const documentProfileTypes = {\n profile: \"profile\",\n shipping: \"shipping\",\n billing: \"billing\"\n} as const\n\nexport type DocumentProfileType = typeof documentProfileTypes[keyof typeof documentProfileTypes]\n\nexport type DocumentProfileServiceProps = DefaultServiceProps & {\n documentType: DocumentType\n};\n\nexport type DocumentProfile = {\n userId: number,\n userBranchId: number,\n // documentId: number,\n profileType: DocumentProfileType,\n code?: string,\n profileName?: string,\n personName?: string,\n contactNo?: string,\n email?: string,\n address1?: string,\n address2?: string,\n postcode?: string,\n stateId?: number,\n areaId?: number,\n countryId?: number\n}\n\nexport type DocumentProfileGetProps = Omit<QueryGet, \"datatypes\"> & {\n documentId?: number | \"\",\n documentType?: DocumentType | \"\",\n profileType?: DocumentProfileType | \"\"\n};\n\nexport type DocumentProfileListProps = Omit<QueryList, \"datatypes\"> & {\n // profileType: DocumentProfileType\n};\n\nexport type DocumentProfileCreateProps = {\n documentId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileUpdateProps = {\n // documentId: number,\n documentProfileId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileReplaceHQProps = {\n documentId: number,\n documentType?: DocumentType,\n data: Pick<DocumentProfile, \"userId\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileReplaceOtherProps = {\n documentId: number,\n documentType?: DocumentType,\n documentProfileType: DocumentProfileType,\n data: Omit<DocumentProfile, \"userId\" | \"profileType\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileRemoveProps = {\n documentIds: BigInt[]\n};\n\nconst getCreatePayload = (documentId: number, documentType: DocumentType, data: DocumentProfileCreateProps[\"data\"]) => {\n\n return {\n [`${ModelDocumentProfileFields.document_id}`]: documentId,\n [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nconst getUpdatePayload = (documentType: DocumentType, data: DocumentProfileUpdateProps[\"data\"]) => {\n\n return {\n // [`${ModelDocumentProfileFields.document_id}`]: documentId,\n // [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nlet mainSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.document_profile_id}`]: `document_profile_id`,\n [`docpro.${ModelDocumentProfileFields.code}`]: `code`,\n [`docpro.${ModelDocumentProfileFields.name}`]: `name`,\n [`docpro.${ModelDocumentProfileFields.type}`]: `type`,\n [`docpro.${ModelDocumentProfileFields.document_id}`]: `document_id`,\n [`docpro.${ModelDocumentProfileFields.document_type}`]: `document_type`,\n [`docpro.${ModelDocumentProfileFields.profile_name}`]: `profile_name`,\n [`docpro.${ModelDocumentProfileFields.address_1}`]: `address_1`,\n [`docpro.${ModelDocumentProfileFields.address_2}`]: `address_2`,\n [`docpro.${ModelDocumentProfileFields.contact}`]: `contact`,\n [`docpro.${ModelDocumentProfileFields.email}`]: `email`,\n [`docpro.${ModelDocumentProfileFields.postcode}`]: `postcode`,\n // [`docpro.${ModelDocumentProfileFields.area}`]: `area`,\n [`docpro.${ModelDocumentProfileFields.area_id}`]: `area_id`,\n // [`${aliasArea}.${ModelAreaFields.area_name}`]: `area_name`,\n // [`${aliasCountry}.${ModelCountryFields.country_name}`]: `country_name`,\n [`docpro.${ModelDocumentProfileFields.country_id}`]: `country_id`,\n // [`${aliasState}.${ModelStateFields.state_name}`]: `state_name`,\n [`docpro.${ModelDocumentProfileFields.state_id}`]: `state_id`,\n [`docpro.${ModelDocumentProfileFields.user_id}`]: `user_id`,\n [`docpro.${ModelDocumentProfileFields.user_branch_id}`]: `user_branch_id`\n}\nlet defaultSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`docpro.${ModelDocumentProfileFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`docpro.${ModelDocumentProfileFields.isdelete}`]: \"isdelete\",\n [`docpro.${ModelDocumentProfileFields.istrash}`]: \"istrash\",\n [`docpro.${ModelDocumentProfileFields.accountid}`]: \"accountid\",\n}\n\nexport const DocumentProfileService = (props: DocumentProfileServiceProps) => {\n\n const {\n documentType = \"sales\",\n ...rest\n } = props\n\n const documentProfileModel = DocumentProfileModel({ ...rest })\n const documentModel = DocumentModel({ ...rest })\n\n const userBranchService = UserBranchService({ ...rest, userBranchUserType: \"customer\", userBranchType: \"branch\" })\n\n // override existing - if not found create new\n const replaceDocumentProfileHQ = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileReplaceHQProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userId = data.userId\n // const documentId = data.documentId\n\n let _userHQBranches = await userBranchService.getUserBranchByUserId({ userId, onlyHQ: true, datatypes: [] })\n\n if (_userHQBranches.length <= 0) {\n throwError(`Unset main branch user id: ${userId}`)\n }\n\n let userHQBranches = _userHQBranches[0]\n\n // console.log('userHQBranches', userHQBranches)\n\n // check the profile HQ already exists - for type profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: \"profile\" })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // update document profile for profile\n response = await updateDocumentProfile(payload)\n\n } else { // create new\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // create document profile for profile\n response = await createDocumentProfile(payload)\n\n }\n\n return response\n\n }\n\n // override existing - if not found create new\n const replaceDocumentProfileOther = async ({ data, documentId, documentProfileType = \"shipping\", documentType: overrideDocumentType }: DocumentProfileReplaceOtherProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userBranchId = data.userBranchId\n // const userType = data.userType\n // const documentId = data.documentId\n\n let userBranch = await userBranchService.getUserBranch({ userBranchId, datatypes: [] })\n\n // console.log('userBranch', userBranch)\n\n if (!userBranch?.user_id) {\n throwError(`Invalid user id in user branch: ${userBranchId}`)\n }\n\n // check the profile other already exists - for other type than profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: documentProfileType })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // update document profile for (shipping or billing)\n response = await updateDocumentProfile(payload)\n\n } else {\n\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // create document profile for (shipping or billing)\n response = await createDocumentProfile(payload)\n }\n\n return response\n\n }\n\n // private\n const createDocumentProfile = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileCreateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getCreatePayload(documentId, _documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid create document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // create document profile\n return await documentProfileModel.create({ data: _data })\n\n }\n\n // private\n const updateDocumentProfile = async ({ documentProfileId, data, documentType: overrideDocumentType }: DocumentProfileUpdateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getUpdatePayload(_documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid update document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // update document profile\n return await documentProfileModel.update({ id: documentProfileId, data: _data })\n\n }\n\n const getDocumentProfile = async ({ documentId = \"\", documentType = \"\", profileType = \"\" }: DocumentProfileGetProps) => {\n\n let filters = []\n\n if (documentType) {\n filters.push({ field: `${ModelDocumentProfileFields.document_type}`, operator: \"=\", value: documentType })\n }\n if (documentId) {\n filters.push({ field: `${ModelDocumentProfileFields.document_id}`, operator: \"=\", value: Number(documentId) })\n }\n if (profileType) {\n filters.push({ field: `${ModelDocumentProfileFields.type}`, operator: \"=\", value: profileType.toUpperCase() })\n }\n\n let { data } = await listDocumentProfiles({\n limit: 1,\n offset: 0,\n filters: filters as QueryList[\"filters\"],\n sortfield: `${ModelDocumentProfileFields.document_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listDocumentProfiles = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: DocumentProfileListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n sqlRelation = [\n buildSqlRelation(\"left\", \"docpro\", \"users\", \"creator\", [\"docpro.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"docpro\", \"users\", \"updater\", [\"docpro.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"docpro\", \"document_items\", \"docitm\", [\"docpro.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `docpro.isdelete = false`,\n `docpro.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 // get the data (pagination)\n const sqlRaw = buildSqlRawSelect({\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n accountId: rest.accountId,\n sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n let data = await documentModel.raw(sqlRaw)\n\n // get the count\n const sqlRawCount = buildSqlRawSelectCount({\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby\n })\n\n let count = await documentModel.raw(sqlRawCount)\n\n const response = {\n data,\n total: data.length ? Number(count[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeDocumentProfiles = async ({ documentIds }: DocumentProfileRemoveProps) => {\n\n if (!documentIds.length) throwError('documentIds is required');\n\n const response = await documentProfileModel.remove({ where: { [`${ModelDocumentProfileFields.document_id}`]: { in: documentIds } } });\n\n return response\n };\n\n return {\n replaceDocumentProfileHQ,\n replaceDocumentProfileOther,\n removeDocumentProfiles,\n // createDocumentProfile // no need export internal use only\n // updateDocumentProfile // no need export internal use only\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"DocumentProfileService.js","sourceRoot":"","sources":["../../../src/services/document/DocumentProfileService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DocumentModel,\n DocumentProfileModel,\n ModelDocumentProfileFields,\n ModelUserFields\n} from \"@/models\";\n\nimport { dayjs, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { UserBranchService } from \"@/services\"\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DocumentType } from \"./DocumentService\"\n\nimport { buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect, getDocumentProfileRelationMaps, getListWithCount } from \"@/lib\";\n\nexport const documentProfileTypes = {\n profile: \"profile\",\n shipping: \"shipping\",\n billing: \"billing\"\n} as const\n\nexport type DocumentProfileType = typeof documentProfileTypes[keyof typeof documentProfileTypes]\n\nexport type DocumentProfileServiceProps = DefaultServiceProps & {\n documentType: DocumentType\n};\n\nexport type DocumentProfile = {\n userId: number,\n userBranchId: number,\n // documentId: number,\n profileType: DocumentProfileType,\n code?: string,\n profileName?: string,\n personName?: string,\n contactNo?: string,\n email?: string,\n address1?: string,\n address2?: string,\n postcode?: string,\n stateId?: number,\n areaId?: number,\n countryId?: number\n}\n\nexport type DocumentProfileGetProps = Omit<QueryGet, \"datatypes\"> & {\n documentId?: number | \"\",\n documentType?: DocumentType | \"\",\n profileType?: DocumentProfileType | \"\"\n};\n\nexport type DocumentProfileListProps = Omit<QueryList, \"datatypes\"> & {\n // profileType: DocumentProfileType\n};\n\nexport type DocumentProfileCreateProps = {\n documentId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileUpdateProps = {\n // documentId: number,\n documentProfileId: number,\n documentType?: DocumentType,\n data: DocumentProfile\n}\n\nexport type DocumentProfileReplaceHQProps = {\n documentId: number,\n documentType?: DocumentType,\n data: Pick<DocumentProfile, \"userId\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileReplaceOtherProps = {\n documentId: number,\n documentType?: DocumentType,\n documentProfileType: DocumentProfileType,\n data: Omit<DocumentProfile, \"userId\" | \"profileType\"> & {\n // userType: \"customer\" | \"supplier\"\n }\n}\n\nexport type DocumentProfileRemoveProps = {\n documentIds: BigInt[]\n};\n\nconst { relationKeys, sqlRelationMaps } = getDocumentProfileRelationMaps()\n\nconst getCreatePayload = (documentId: number, documentType: DocumentType, data: DocumentProfileCreateProps[\"data\"]) => {\n\n return {\n [`${ModelDocumentProfileFields.document_id}`]: documentId,\n [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nconst getUpdatePayload = (documentType: DocumentType, data: DocumentProfileUpdateProps[\"data\"]) => {\n\n return {\n // [`${ModelDocumentProfileFields.document_id}`]: documentId,\n // [`${ModelDocumentProfileFields.document_type}`]: documentType,\n [`${ModelDocumentProfileFields.user_branch_id}`]: data.userBranchId,\n [`${ModelDocumentProfileFields.user_id}`]: data.userId,\n [`${ModelDocumentProfileFields.code}`]: data.code,\n [`${ModelDocumentProfileFields.type}`]: data.profileType.toUpperCase(),\n [`${ModelDocumentProfileFields.profile_name}`]: data.profileName,\n [`${ModelDocumentProfileFields.address_1}`]: data.address1,\n [`${ModelDocumentProfileFields.address_2}`]: data.address2,\n [`${ModelDocumentProfileFields.contact}`]: data.contactNo,\n [`${ModelDocumentProfileFields.email}`]: data.email,\n [`${ModelDocumentProfileFields.name}`]: data.personName,\n [`${ModelDocumentProfileFields.postcode}`]: data.postcode,\n [`${ModelDocumentProfileFields.area_id}`]: data.areaId,\n [`${ModelDocumentProfileFields.state_id}`]: data.stateId,\n [`${ModelDocumentProfileFields.country_id}`]: data.countryId,\n }\n\n}\n\nlet mainSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.document_profile_id}`]: `document_profile_id`,\n [`docpro.${ModelDocumentProfileFields.code}`]: `code`,\n [`docpro.${ModelDocumentProfileFields.name}`]: `name`,\n [`docpro.${ModelDocumentProfileFields.type}`]: `type`,\n [`docpro.${ModelDocumentProfileFields.document_id}`]: `document_id`,\n [`docpro.${ModelDocumentProfileFields.document_type}`]: `document_type`,\n [`docpro.${ModelDocumentProfileFields.profile_name}`]: `profile_name`,\n [`docpro.${ModelDocumentProfileFields.address_1}`]: `address_1`,\n [`docpro.${ModelDocumentProfileFields.address_2}`]: `address_2`,\n [`docpro.${ModelDocumentProfileFields.contact}`]: `contact`,\n [`docpro.${ModelDocumentProfileFields.email}`]: `email`,\n [`docpro.${ModelDocumentProfileFields.postcode}`]: `postcode`,\n // [`docpro.${ModelDocumentProfileFields.area}`]: `area`,\n [`docpro.${ModelDocumentProfileFields.area_id}`]: `area_id`,\n // [`${aliasArea}.${ModelAreaFields.area_name}`]: `area_name`,\n // [`${aliasCountry}.${ModelCountryFields.country_name}`]: `country_name`,\n [`docpro.${ModelDocumentProfileFields.country_id}`]: `country_id`,\n // [`${aliasState}.${ModelStateFields.state_name}`]: `state_name`,\n [`docpro.${ModelDocumentProfileFields.state_id}`]: `state_id`,\n [`docpro.${ModelDocumentProfileFields.user_id}`]: `user_id`,\n [`docpro.${ModelDocumentProfileFields.user_branch_id}`]: `user_branch_id`\n}\nlet defaultSqlSelect = {\n [`docpro.${ModelDocumentProfileFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`docpro.${ModelDocumentProfileFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`docpro.${ModelDocumentProfileFields.isdelete}`]: \"isdelete\",\n [`docpro.${ModelDocumentProfileFields.istrash}`]: \"istrash\",\n [`docpro.${ModelDocumentProfileFields.accountid}`]: \"accountid\",\n}\n\nexport const DocumentProfileService = (props: DocumentProfileServiceProps) => {\n\n const {\n documentType = \"sales\",\n ...rest\n } = props\n\n const documentProfileModel = DocumentProfileModel({ ...rest })\n const documentModel = DocumentModel({ ...rest })\n\n const userBranchService = UserBranchService({ ...rest, userBranchUserType: \"customer\", userBranchType: \"branch\" })\n\n // override existing - if not found create new\n const replaceDocumentProfileHQ = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileReplaceHQProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userId = data.userId\n // const documentId = data.documentId\n\n let _userHQBranches = await userBranchService.getUserBranchByUserId({ userId, onlyHQ: true, datatypes: [] })\n\n if (_userHQBranches.length <= 0) {\n throwError(`Unset main branch user id: ${userId}`)\n }\n\n let userHQBranches = _userHQBranches[0]\n\n // console.log('userHQBranches', userHQBranches)\n\n // check the profile HQ already exists - for type profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: \"profile\" })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // update document profile for profile\n response = await updateDocumentProfile(payload)\n\n } else { // create new\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: \"profile\",\n userBranchId: Number(userHQBranches.branch_id),\n userId: Number(userHQBranches.user_id),\n code: userHQBranches.branch_code ?? \"\",\n contactNo: userHQBranches.branch_contact ?? \"\",\n email: userHQBranches.branch_email ?? \"\",\n personName: `${userHQBranches?.pic_name ?? \"\"}`,\n postcode: userHQBranches.postcode ?? \"\",\n profileName: userHQBranches.branch_name ?? \"\",\n stateId: Number(userHQBranches.state_id),\n areaId: Number(userHQBranches.area_id),\n countryId: Number(userHQBranches.country_id),\n address1: userHQBranches.address_1 ?? \"\",\n address2: userHQBranches.address_2 ?? \"\",\n }\n }\n\n // create document profile for profile\n response = await createDocumentProfile(payload)\n\n }\n\n return response\n\n }\n\n // override existing - if not found create new\n const replaceDocumentProfileOther = async ({ data, documentId, documentProfileType = \"shipping\", documentType: overrideDocumentType }: DocumentProfileReplaceOtherProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const userBranchId = data.userBranchId\n // const userType = data.userType\n // const documentId = data.documentId\n\n let userBranch = await userBranchService.getUserBranch({ userBranchId, datatypes: [] })\n\n // console.log('userBranch', userBranch)\n\n if (!userBranch?.user_id) {\n throwError(`Invalid user id in user branch: ${userBranchId}`)\n }\n\n // check the profile other already exists - for other type than profile\n const existProfile = await getDocumentProfile({ documentId, documentType: _documentType, profileType: documentProfileType })\n\n let response: any = {}\n\n if (existProfile) {\n\n let payload: DocumentProfileUpdateProps = {\n documentProfileId: Number(existProfile?.document_profile_id),\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // update document profile for (shipping or billing)\n response = await updateDocumentProfile(payload)\n\n } else {\n\n let payload: DocumentProfileCreateProps = {\n documentId,\n documentType: _documentType,\n data: {\n profileType: documentProfileType,\n userBranchId: Number(userBranch.branch_id),\n userId: Number(userBranch.user_id),\n\n code: data?.code ? data.code : String(userBranch.branch_code ?? \"\"),\n contactNo: data?.code ? data.code : String(userBranch.branch_contact ?? \"\"),\n email: data?.email ? data.email : String(userBranch.branch_email ?? \"\"),\n personName: data?.personName ? data.personName : String(`${userBranch?.pic_name ?? \"\"}`),\n postcode: data?.postcode ? data.postcode : String(userBranch.postcode ?? \"\"),\n profileName: data?.profileName ? data.profileName : String(userBranch.branch_name ?? \"\"),\n stateId: data?.stateId ? Number(data.stateId) : Number(userBranch.state_id),\n areaId: data?.areaId ? Number(data.areaId) : Number(userBranch.area_id),\n countryId: data?.countryId ? Number(data.countryId) : Number(userBranch.country_id),\n address1: data?.address1 ? data.address1 : String(userBranch.address_1 ?? \"\"),\n address2: data?.address2 ? data.address2 : String(userBranch.address_2 ?? \"\"),\n }\n }\n\n // create document profile for (shipping or billing)\n response = await createDocumentProfile(payload)\n }\n\n return response\n\n }\n\n // private\n const createDocumentProfile = async ({ data, documentId, documentType: overrideDocumentType }: DocumentProfileCreateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getCreatePayload(documentId, _documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid create document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // create document profile\n return await documentProfileModel.create({ data: _data })\n\n }\n\n // private\n const updateDocumentProfile = async ({ documentProfileId, data, documentType: overrideDocumentType }: DocumentProfileUpdateProps) => {\n\n const _documentType = overrideDocumentType || documentType\n\n const _data = getUpdatePayload(_documentType, data)\n\n if (!_data) {\n throw new Error(`Invalid update document(profile) payload: ${JSON.stringify(_data)}`);\n }\n\n // update document profile\n return await documentProfileModel.update({ id: documentProfileId, data: _data })\n\n }\n\n const getDocumentProfile = async ({ documentId = \"\", documentType = \"\", profileType = \"\" }: DocumentProfileGetProps) => {\n\n let filters = []\n\n if (documentType) {\n filters.push({ field: `${ModelDocumentProfileFields.document_type}`, operator: \"=\", value: documentType })\n }\n if (documentId) {\n filters.push({ field: `${ModelDocumentProfileFields.document_id}`, operator: \"=\", value: Number(documentId) })\n }\n if (profileType) {\n filters.push({ field: `${ModelDocumentProfileFields.type}`, operator: \"=\", value: profileType.toUpperCase() })\n }\n\n let { data } = await listDocumentProfiles({\n limit: 1,\n offset: 0,\n filters: filters as QueryList[\"filters\"],\n sortfield: `${ModelDocumentProfileFields.document_id}`,\n sortorder: \"ASC\",\n // datatypes: []\n })\n\n return data[0] ?? null;\n\n };\n\n const listDocumentProfiles = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n // datatypes = []\n }: DocumentProfileListProps) => {\n\n let sqlSelect: string[] = []\n let sqlRelation: string[] = []\n let sqlGroupBy: string[] = []\n\n let sqlSelectAgg: string[] = []\n let sqlRelationAgg: string[] = []\n\n sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n // sqlRelation = [\n // buildSqlRelation(\"left\", \"docpro\", \"users\", \"creator\", [\"docpro.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n // buildSqlRelation(\"left\", \"docpro\", \"users\", \"updater\", [\"docpro.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n // ]\n\n sqlRelation = [\n sqlRelationMaps.creator,\n sqlRelationMaps.updater\n ]\n\n // sqlRelationAgg = [\n // buildSqlRelation(\"left\", \"docpro\", \"document_items\", \"docitm\", [\"docpro.document_id = docitm.document_id\", \"docitm.isdelete = false\", \"docitm.istrash = false\"]),\n // ]\n\n sqlGroupBy = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `docpro.isdelete = false`,\n `docpro.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 // get the data (pagination)\n // const sqlRaw = buildSqlRawSelect({\n // tableName: \"document_profiles\",\n // mainAlias: \"docpro\",\n // accountId: rest.accountId,\n // sqlSelect: [...sqlSelect, ...sqlSelectAgg],\n // sqlRelation: [...sqlRelation, ...sqlRelationAgg],\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // let data = await documentModel.raw(sqlRaw)\n\n // // get the count\n // const sqlRawCount = buildSqlRawSelectCount({\n // tableName: \"document_profiles\",\n // mainAlias: \"docpro\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby\n // })\n\n // let count = await documentModel.raw(sqlRawCount)\n\n // get the listing data & count\n const { data, total } = await getListWithCount({\n model: documentModel,\n tableName: \"document_profiles\",\n mainAlias: \"docpro\",\n countKey: `${ModelDocumentProfileFields.document_profile_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg,\n sqlRelation,\n sqlRelationAgg,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n // const response = {\n // data,\n // total: data.length ? Number(count[0].filtered_count) : 0\n // }\n\n return response\n\n };\n\n const removeDocumentProfiles = async ({ documentIds }: DocumentProfileRemoveProps) => {\n\n if (!documentIds.length) throwError('documentIds is required');\n\n const response = await documentProfileModel.remove({ where: { [`${ModelDocumentProfileFields.document_id}`]: { in: documentIds } } });\n\n return response\n };\n\n return {\n replaceDocumentProfileHQ,\n replaceDocumentProfileOther,\n removeDocumentProfiles,\n // createDocumentProfile // no need export internal use only\n // updateDocumentProfile // no need export internal use only\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.164",
3
+ "version": "1.0.165",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",