storemw-core-api 1.0.152 → 1.0.153

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.
Files changed (52) hide show
  1. package/dist/controllers/index.d.ts +1 -0
  2. package/dist/controllers/index.js +8 -1
  3. package/dist/controllers/index.js.map +1 -1
  4. package/dist/controllers/scheduler/schedulerRequestController.d.ts +11 -0
  5. package/dist/controllers/scheduler/schedulerRequestController.js +156 -0
  6. package/dist/controllers/scheduler/schedulerRequestController.js.map +1 -0
  7. package/dist/lib/index.d.ts +1 -1
  8. package/dist/lib/index.js +4 -1
  9. package/dist/lib/index.js.map +1 -1
  10. package/dist/lib/query_builder/queryScheduler.d.ts +13 -0
  11. package/dist/lib/query_builder/queryScheduler.js +47 -1
  12. package/dist/lib/query_builder/queryScheduler.js.map +1 -1
  13. package/dist/middlewares/route/index.d.ts +2 -1
  14. package/dist/middlewares/route/index.js +13 -7
  15. package/dist/middlewares/route/index.js.map +1 -1
  16. package/dist/middlewares/route/validateScheduler.d.ts +10 -0
  17. package/dist/middlewares/route/validateScheduler.js +39 -0
  18. package/dist/middlewares/route/validateScheduler.js.map +1 -0
  19. package/dist/models/index.d.ts +2 -0
  20. package/dist/models/index.js +4 -1
  21. package/dist/models/index.js.map +1 -1
  22. package/dist/models/scheduler/SchedulerRequestModel.d.ts +327 -0
  23. package/dist/models/scheduler/SchedulerRequestModel.js +13 -0
  24. package/dist/models/scheduler/SchedulerRequestModel.js.map +1 -0
  25. package/dist/routes/scheduler/schedulerRequestRoutes.d.ts +2 -0
  26. package/dist/routes/scheduler/schedulerRequestRoutes.js +15 -0
  27. package/dist/routes/scheduler/schedulerRequestRoutes.js.map +1 -0
  28. package/dist/routes/scheduler/schedulerRequestsRoutes.d.ts +2 -0
  29. package/dist/routes/scheduler/schedulerRequestsRoutes.js +13 -0
  30. package/dist/routes/scheduler/schedulerRequestsRoutes.js.map +1 -0
  31. package/dist/routes/scheduler/schedulersRoutes.js +5 -0
  32. package/dist/routes/scheduler/schedulersRoutes.js.map +1 -1
  33. package/dist/schema/middleware/route/index.d.ts +2 -2
  34. package/dist/schema/middleware/route/index.js +4 -3
  35. package/dist/schema/middleware/route/index.js.map +1 -1
  36. package/dist/schema/middleware/route/schemaScheduler.d.ts +7 -0
  37. package/dist/schema/middleware/route/schemaScheduler.js +15 -0
  38. package/dist/schema/middleware/route/schemaScheduler.js.map +1 -0
  39. package/dist/schema/payload/index.d.ts +2 -0
  40. package/dist/schema/payload/index.js +5 -1
  41. package/dist/schema/payload/index.js.map +1 -1
  42. package/dist/schema/payload/scheduler/schemaSchedulerRequest.d.ts +254 -0
  43. package/dist/schema/payload/scheduler/schemaSchedulerRequest.js +46 -0
  44. package/dist/schema/payload/scheduler/schemaSchedulerRequest.js.map +1 -0
  45. package/dist/services/index.d.ts +2 -0
  46. package/dist/services/index.js +3 -1
  47. package/dist/services/index.js.map +1 -1
  48. package/dist/services/scheduler/SchedulerRequestService.d.ts +109 -0
  49. package/dist/services/scheduler/SchedulerRequestService.js +141 -0
  50. package/dist/services/scheduler/SchedulerRequestService.js.map +1 -0
  51. package/package.json +1 -1
  52. package/prisma/schema.prisma +80 -54
@@ -0,0 +1,109 @@
1
+ import { QueryList, QueryGet } from "../../schema/common";
2
+ import { DefaultServiceProps } from "../../utils";
3
+ import { InjectionFieldModuleRef } from "../../services";
4
+ export type SchedulerRequestModuleRef = InjectionFieldModuleRef;
5
+ export type SchedulerRequestServiceProps = DefaultServiceProps & {};
6
+ export type SchedulerRequestGetProps = Omit<QueryGet, "datatypes"> & {
7
+ id: number;
8
+ };
9
+ export type SchedulerRequestListProps = Omit<QueryList, "datatypes"> & {};
10
+ export type SchedulerRequestRemoveProps = {
11
+ schedulerRequestIds: BigInt[];
12
+ };
13
+ export type SchedulerRequest = {};
14
+ export type SchedulerRequestCreateProps = {
15
+ data: SchedulerRequest & {
16
+ fieldRef: SchedulerRequestModuleRef["field_ref"];
17
+ fieldModule: SchedulerRequestModuleRef["field_module"];
18
+ integrationId: string;
19
+ sourceEntityId: string;
20
+ sourceEntityLabel: string;
21
+ sourceEntityData: string | null;
22
+ requestAction: string;
23
+ };
24
+ };
25
+ export type SchedulerRequestExecuteProps = {
26
+ schedulerRequestId: number;
27
+ data: SchedulerRequest & {
28
+ destinationEntityId: string | null;
29
+ destinationEntityLabel: string | null;
30
+ attemptStatus: boolean;
31
+ attemptResult: string | null;
32
+ };
33
+ };
34
+ export declare const SchedulerRequestService: (props: SchedulerRequestServiceProps) => {
35
+ getSchedulerRequest: ({ id }: SchedulerRequestGetProps) => Promise<any>;
36
+ createSchedulerRequest: ({ data }: SchedulerRequestCreateProps) => Promise<{
37
+ createdatetime: Date | null;
38
+ createuserid: bigint;
39
+ updatedatetime: Date | null;
40
+ updateuserid: bigint;
41
+ isdelete: boolean | null;
42
+ istrash: boolean | null;
43
+ accountid: bigint;
44
+ field_ref: string;
45
+ field_module: string;
46
+ source_entity_id: string | null;
47
+ source_entity_label: string | null;
48
+ source_entity_data: string | null;
49
+ destination_entity_id: string | null;
50
+ destination_entity_label: string | null;
51
+ scheduler_request_id: bigint;
52
+ integration_id: string;
53
+ request_action: string;
54
+ attempt_no: bigint | null;
55
+ attempt_status: boolean;
56
+ attempt_result: string | null;
57
+ attempt_datetime: Date | null;
58
+ }>;
59
+ executeSchedulerRequest: ({ schedulerRequestId, data }: SchedulerRequestExecuteProps) => Promise<{
60
+ createdatetime: Date | null;
61
+ createuserid: bigint;
62
+ updatedatetime: Date | null;
63
+ updateuserid: bigint;
64
+ isdelete: boolean | null;
65
+ istrash: boolean | null;
66
+ accountid: bigint;
67
+ field_ref: string;
68
+ field_module: string;
69
+ source_entity_id: string | null;
70
+ source_entity_label: string | null;
71
+ source_entity_data: string | null;
72
+ destination_entity_id: string | null;
73
+ destination_entity_label: string | null;
74
+ scheduler_request_id: bigint;
75
+ integration_id: string;
76
+ request_action: string;
77
+ attempt_no: bigint | null;
78
+ attempt_status: boolean;
79
+ attempt_result: string | null;
80
+ attempt_datetime: Date | null;
81
+ }>;
82
+ removeSchedulerRequests: ({ schedulerRequestIds }: SchedulerRequestRemoveProps) => Promise<{
83
+ createdatetime: Date | null;
84
+ createuserid: bigint;
85
+ updatedatetime: Date | null;
86
+ updateuserid: bigint;
87
+ isdelete: boolean | null;
88
+ istrash: boolean | null;
89
+ accountid: bigint;
90
+ field_ref: string;
91
+ field_module: string;
92
+ source_entity_id: string | null;
93
+ source_entity_label: string | null;
94
+ source_entity_data: string | null;
95
+ destination_entity_id: string | null;
96
+ destination_entity_label: string | null;
97
+ scheduler_request_id: bigint;
98
+ integration_id: string;
99
+ request_action: string;
100
+ attempt_no: bigint | null;
101
+ attempt_status: boolean;
102
+ attempt_result: string | null;
103
+ attempt_datetime: Date | null;
104
+ }[]>;
105
+ listSchedulerRequests: ({ limit, offset, filters, sortfield, sortorder }: SchedulerRequestListProps) => Promise<{
106
+ data: any;
107
+ total: number;
108
+ }>;
109
+ };
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchedulerRequestService = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const models_1 = require("../../models");
6
+ const utils_2 = require("../../utils");
7
+ const lib_1 = require("../../lib");
8
+ const lib_2 = require("../../lib");
9
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getSchedulerRequestSqlRelationMaps)();
10
+ const getCreatePayload = (data) => {
11
+ return {
12
+ [`${models_1.ModelSchedulerRequestFields.field_module}`]: data.fieldRef,
13
+ [`${models_1.ModelSchedulerRequestFields.field_ref}`]: data.fieldModule,
14
+ [`${models_1.ModelSchedulerRequestFields.integration_id}`]: data.integrationId,
15
+ [`${models_1.ModelSchedulerRequestFields.request_action}`]: data.requestAction,
16
+ [`${models_1.ModelSchedulerRequestFields.source_entity_id}`]: data.sourceEntityId,
17
+ [`${models_1.ModelSchedulerRequestFields.source_entity_label}`]: data.sourceEntityLabel,
18
+ [`${models_1.ModelSchedulerRequestFields.source_entity_data}`]: data.sourceEntityData,
19
+ };
20
+ };
21
+ const getExecutePayload = (data) => {
22
+ return {
23
+ [`${models_1.ModelSchedulerRequestFields.attempt_datetime}`]: (0, utils_2.getCurrentDateTimeISO)(),
24
+ // [`${ModelSchedulerRequestFields.attempt_no}`]: `${ModelSchedulerRequestFields.attempt_no} + 1`,
25
+ [`${models_1.ModelSchedulerRequestFields.attempt_result}`]: data.attemptResult,
26
+ [`${models_1.ModelSchedulerRequestFields.attempt_status}`]: data.attemptStatus,
27
+ [`${models_1.ModelSchedulerRequestFields.destination_entity_id}`]: data.destinationEntityId,
28
+ [`${models_1.ModelSchedulerRequestFields.destination_entity_label}`]: data.destinationEntityLabel,
29
+ };
30
+ };
31
+ let mainSqlSelect = (0, lib_2.buildSchedulerRequestMainSqlSelect)();
32
+ let defaultSqlSelect = (0, lib_2.buildSchedulerRequestDefaultSqlSelect)();
33
+ const SchedulerRequestService = (props) => {
34
+ const { ...rest } = props;
35
+ const schedulerLogModel = (0, models_1.SchedulerRequestModel)({ ...rest });
36
+ const createSchedulerRequest = async ({ data }) => {
37
+ const _data = getCreatePayload(data);
38
+ if (!_data) {
39
+ throw new Error(`Invalid create scheduler request payload: ${JSON.stringify(_data)}`);
40
+ }
41
+ let response = await schedulerLogModel.create({ data: _data });
42
+ return response;
43
+ };
44
+ const executeSchedulerRequest = async ({ schedulerRequestId, data }) => {
45
+ const _data = getExecutePayload(data);
46
+ if (!_data) {
47
+ throw new Error(`Invalid execute scheduler request payload: ${JSON.stringify(_data)}`);
48
+ }
49
+ let response = await schedulerLogModel.update({
50
+ id: schedulerRequestId,
51
+ data: {
52
+ ..._data,
53
+ [`${models_1.ModelSchedulerRequestFields.attempt_no}`]: {
54
+ increment: 1
55
+ }
56
+ }
57
+ });
58
+ return response;
59
+ };
60
+ const getSchedulerRequest = async ({ id }) => {
61
+ let { data } = await listSchedulerRequests({
62
+ limit: 1,
63
+ offset: 0,
64
+ filters: [{ field: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`, operator: "=", value: id }],
65
+ sortfield: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`,
66
+ sortorder: "ASC",
67
+ });
68
+ return data[0] ?? null;
69
+ };
70
+ const listSchedulerRequests = async ({ limit, offset, filters = [], sortfield, sortorder }) => {
71
+ let sqlSelect = [
72
+ (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
73
+ (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
74
+ ];
75
+ let sqlRelation = [
76
+ (0, lib_1.buildSqlRelation)("left", "sreq", "users", "creator", ["sreq.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
77
+ (0, lib_1.buildSqlRelation)("left", "sreq", "users", "updater", ["sreq.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
78
+ ];
79
+ let sqlGroupBy = [
80
+ ...Object.keys(mainSqlSelect),
81
+ ...Object.keys(defaultSqlSelect)
82
+ ];
83
+ let filterColumns = {
84
+ ...mainSqlSelect,
85
+ ...defaultSqlSelect
86
+ };
87
+ let sqlWhere = [
88
+ `sreq.isdelete = false`,
89
+ `sreq.istrash = false`,
90
+ ...(filters.length ? [(0, lib_1.buildSqlWhere)(filters, filterColumns)?.where] : []),
91
+ ];
92
+ let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
93
+ let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
94
+ // get the listing data & count
95
+ const { data, total } = await (0, lib_1.getListWithCount)({
96
+ model: schedulerLogModel,
97
+ tableName: "scheduler_requests",
98
+ mainAlias: "sreq",
99
+ countKey: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`,
100
+ accountId: rest.accountId,
101
+ sqlRelationMaps,
102
+ filters,
103
+ filterColumns,
104
+ sqlSelect,
105
+ sqlSelectAgg: [],
106
+ sqlRelation,
107
+ sqlRelationAgg: [],
108
+ sqlWhere,
109
+ sqlGroupBy,
110
+ sqlOrderby,
111
+ sqlLimitOffset
112
+ });
113
+ const response = {
114
+ data,
115
+ total
116
+ };
117
+ return response;
118
+ };
119
+ const removeSchedulerRequests = async ({ schedulerRequestIds }) => {
120
+ if (!schedulerRequestIds.length)
121
+ (0, utils_1.throwError)('schedulerRequestIds is required');
122
+ const response = await schedulerLogModel.remove({
123
+ where: {
124
+ [`${models_1.ModelSchedulerRequestFields.scheduler_request_id}`]: {
125
+ in: schedulerRequestIds
126
+ },
127
+ [`${models_1.ModelSchedulerRequestFields.attempt_status}`]: false
128
+ }
129
+ });
130
+ return response;
131
+ };
132
+ return {
133
+ getSchedulerRequest,
134
+ createSchedulerRequest,
135
+ executeSchedulerRequest,
136
+ removeSchedulerRequests,
137
+ listSchedulerRequests
138
+ };
139
+ };
140
+ exports.SchedulerRequestService = SchedulerRequestService;
141
+ //# sourceMappingURL=SchedulerRequestService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulerRequestService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerRequestService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n SchedulerRequestModel,\n ModelSchedulerRequestFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerRequestSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerRequestDefaultSqlSelect,\n buildSchedulerRequestMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerRequestModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerRequestServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerRequestGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerRequestListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerRequestRemoveProps = {\n schedulerRequestIds: BigInt[]\n};\n\nexport type SchedulerRequest = {\n\n}\n\nexport type SchedulerRequestCreateProps = {\n data: SchedulerRequest & {\n fieldRef: SchedulerRequestModuleRef[\"field_ref\"],\n fieldModule: SchedulerRequestModuleRef[\"field_module\"],\n integrationId: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string | null;\n requestAction: string;\n\n }\n}\n\nexport type SchedulerRequestExecuteProps = {\n schedulerRequestId: number,\n data: SchedulerRequest & {\n destinationEntityId: string | null;\n destinationEntityLabel: string | null;\n attemptStatus: boolean;\n attemptResult: string | null;\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerRequestSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerRequestCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerRequestFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerRequestFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerRequestFields.integration_id}`]: data.integrationId,\n [`${ModelSchedulerRequestFields.request_action}`]: data.requestAction,\n\n [`${ModelSchedulerRequestFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerRequestFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerRequestFields.source_entity_data}`]: data.sourceEntityData,\n }\n\n}\n\nconst getExecutePayload = (data: SchedulerRequestExecuteProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerRequestFields.attempt_datetime}`]: getCurrentDateTimeISO(),\n // [`${ModelSchedulerRequestFields.attempt_no}`]: `${ModelSchedulerRequestFields.attempt_no} + 1`,\n [`${ModelSchedulerRequestFields.attempt_result}`]: data.attemptResult,\n [`${ModelSchedulerRequestFields.attempt_status}`]: data.attemptStatus,\n [`${ModelSchedulerRequestFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerRequestFields.destination_entity_label}`]: data.destinationEntityLabel,\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerRequestMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerRequestDefaultSqlSelect()\n\nexport const SchedulerRequestService = (props: SchedulerRequestServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerRequestModel({ ...rest })\n\n const createSchedulerRequest = async ({ data }: SchedulerRequestCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler request payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const executeSchedulerRequest = async ({ schedulerRequestId, data }: SchedulerRequestExecuteProps) => {\n\n const _data = getExecutePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid execute scheduler request payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.update({\n id: schedulerRequestId,\n data: {\n ..._data,\n [`${ModelSchedulerRequestFields.attempt_no}`]: {\n increment: 1\n }\n }\n })\n\n return response\n }\n\n const getSchedulerRequest = async ({ id }: SchedulerRequestGetProps) => {\n\n let { data } = await listSchedulerRequests({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerRequestFields.scheduler_request_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerRequestFields.scheduler_request_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerRequests = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerRequestListProps) => {\n\n let sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"creator\", [\"sreq.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"updater\", [\"sreq.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `sreq.isdelete = false`,\n `sreq.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 listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_requests\",\n mainAlias: \"sreq\",\n countKey: `${ModelSchedulerRequestFields.scheduler_request_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 removeSchedulerRequests = async ({ schedulerRequestIds }: SchedulerRequestRemoveProps) => {\n\n if (!schedulerRequestIds.length) throwError('schedulerRequestIds is required');\n\n const response = await schedulerLogModel.remove({\n where: {\n [`${ModelSchedulerRequestFields.scheduler_request_id}`]: {\n in: schedulerRequestIds\n },\n [`${ModelSchedulerRequestFields.attempt_status}`]: false\n }\n });\n\n return response\n };\n\n return {\n getSchedulerRequest,\n createSchedulerRequest,\n executeSchedulerRequest,\n removeSchedulerRequests,\n listSchedulerRequests\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.152",
3
+ "version": "1.0.153",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",
@@ -2109,60 +2109,6 @@ model cl_sales_items {
2109
2109
  @@schema("public")
2110
2110
  }
2111
2111
 
2112
- model cl_scheduler_logs {
2113
- scheduler_log_id BigInt @id @default(autoincrement())
2114
- scheduler_task_id BigInt @default(autoincrement())
2115
- flow_type String @db.VarChar(256)
2116
- target String @db.VarChar(256)
2117
- module String @db.VarChar(256)
2118
- log_ref String @db.VarChar(256)
2119
- action String @db.VarChar(256)
2120
- log_status Int @default(0) @db.SmallInt
2121
- log_message String?
2122
- source_id String? @db.VarChar(256)
2123
- source_type String? @db.VarChar(256)
2124
- destination_id String? @db.VarChar(256)
2125
- destination_type String? @db.VarChar(256)
2126
- source_data String?
2127
- destination_result String?
2128
- ax_createdatetime DateTime? @db.Timestamp(6)
2129
- ax_createuserid BigInt @default(0)
2130
- ax_updatedatetime DateTime? @db.Timestamp(6)
2131
- ax_updateuserid BigInt @default(0)
2132
- ax_isdelete Boolean? @default(false)
2133
- ax_istrash Boolean? @default(false)
2134
- ax_accountid BigInt @default(0)
2135
- destination_submit_data String?
2136
-
2137
- @@index([scheduler_task_id], map: "idx_scheduler_logs_scheduler_task_id")
2138
- @@schema("public")
2139
- }
2140
-
2141
- model cl_scheduler_requests {
2142
- scheduler_request_id BigInt @id @default(autoincrement())
2143
- source_id BigInt? @default(0)
2144
- request_ref String @db.VarChar(256)
2145
- module String @db.VarChar(256)
2146
- target String @db.VarChar(256)
2147
- integration_id String @db.VarChar(256)
2148
- destination_id String? @db.VarChar(256)
2149
- source_data String?
2150
- action String @db.VarChar(256)
2151
- attempt_no BigInt? @default(0)
2152
- attempt_status Int @default(0) @db.SmallInt
2153
- attempt_result String?
2154
- ax_createdatetime DateTime? @db.Timestamp(6)
2155
- ax_createuserid BigInt @default(0)
2156
- ax_updatedatetime DateTime? @db.Timestamp(6)
2157
- ax_updateuserid BigInt @default(0)
2158
- ax_isdelete Boolean? @default(false)
2159
- ax_istrash Boolean? @default(false)
2160
- ax_accountid BigInt @default(0)
2161
- attempt_datetime DateTime? @db.Timestamp(6)
2162
-
2163
- @@schema("public")
2164
- }
2165
-
2166
2112
  model cl_scheduler_tasks {
2167
2113
  scheduler_task_id BigInt @id @default(autoincrement())
2168
2114
  task_key String @db.VarChar(256)
@@ -3104,3 +3050,83 @@ model repository_pallets {
3104
3050
 
3105
3051
  @@schema("public")
3106
3052
  }
3053
+
3054
+ model cl_scheduler_logs_bk {
3055
+ scheduler_log_id BigInt @id(map: "cl_scheduler_logs_pkey") @default(autoincrement())
3056
+ scheduler_task_id BigInt @default(autoincrement())
3057
+ flow_type String @db.VarChar(256)
3058
+ target String @db.VarChar(256)
3059
+ module String @db.VarChar(256)
3060
+ log_ref String @db.VarChar(256)
3061
+ action String @db.VarChar(256)
3062
+ log_status Int @default(0) @db.SmallInt
3063
+ log_message String?
3064
+ source_id String? @db.VarChar(256)
3065
+ source_type String? @db.VarChar(256)
3066
+ destination_id String? @db.VarChar(256)
3067
+ destination_type String? @db.VarChar(256)
3068
+ source_data String?
3069
+ destination_result String?
3070
+ ax_createdatetime DateTime? @db.Timestamp(6)
3071
+ ax_createuserid BigInt @default(0)
3072
+ ax_updatedatetime DateTime? @db.Timestamp(6)
3073
+ ax_updateuserid BigInt @default(0)
3074
+ ax_isdelete Boolean? @default(false)
3075
+ ax_istrash Boolean? @default(false)
3076
+ ax_accountid BigInt @default(0)
3077
+ destination_submit_data String?
3078
+
3079
+ @@index([scheduler_task_id], map: "idx_scheduler_logs_scheduler_task_id")
3080
+ @@schema("public")
3081
+ }
3082
+
3083
+ model cl_scheduler_requests_bk {
3084
+ scheduler_request_id BigInt @id(map: "cl_scheduler_requests_pkey") @default(autoincrement())
3085
+ source_id BigInt? @default(0)
3086
+ request_ref String @db.VarChar(256)
3087
+ module String @db.VarChar(256)
3088
+ target String @db.VarChar(256)
3089
+ integration_id String @db.VarChar(256)
3090
+ destination_id String? @db.VarChar(256)
3091
+ source_data String?
3092
+ action String @db.VarChar(256)
3093
+ attempt_no BigInt? @default(0)
3094
+ attempt_status Int @default(0) @db.SmallInt
3095
+ attempt_result String?
3096
+ ax_createdatetime DateTime? @db.Timestamp(6)
3097
+ ax_createuserid BigInt @default(0)
3098
+ ax_updatedatetime DateTime? @db.Timestamp(6)
3099
+ ax_updateuserid BigInt @default(0)
3100
+ ax_isdelete Boolean? @default(false)
3101
+ ax_istrash Boolean? @default(false)
3102
+ ax_accountid BigInt @default(0)
3103
+ attempt_datetime DateTime? @db.Timestamp(6)
3104
+
3105
+ @@schema("public")
3106
+ }
3107
+
3108
+ model scheduler_requests {
3109
+ scheduler_request_id BigInt @id @default(autoincrement())
3110
+ createdatetime DateTime? @db.Timestamptz(6)
3111
+ createuserid BigInt @default(0)
3112
+ updatedatetime DateTime? @db.Timestamptz(6)
3113
+ updateuserid BigInt @default(0)
3114
+ isdelete Boolean? @default(false)
3115
+ istrash Boolean? @default(false)
3116
+ accountid BigInt @default(0)
3117
+ field_ref String @db.VarChar(256)
3118
+ field_module String @db.VarChar(256)
3119
+ source_entity_id String? @db.VarChar(256)
3120
+ source_entity_label String? @db.VarChar(256)
3121
+ source_entity_data String?
3122
+ integration_id String @db.VarChar(256)
3123
+ destination_entity_id String? @db.VarChar(256)
3124
+ destination_entity_label String? @db.VarChar(256)
3125
+ request_action String @db.VarChar(256)
3126
+ attempt_no BigInt? @default(0)
3127
+ attempt_status Boolean @default(false)
3128
+ attempt_result String?
3129
+ attempt_datetime DateTime? @db.Timestamptz(6)
3130
+
3131
+ @@schema("public")
3132
+ }