@machinemetrics/mm-erp-sdk 0.1.8-beta.3 → 0.1.8-beta.5

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.
@@ -1,13 +1,8 @@
1
1
  import { PsqlService } from "./psql-service";
2
- import { PsqlLaborTicketOperations } from "./internal/psql-labor-ticket-operations";
3
2
  /**
4
3
  * A class to manage interactions with PSQL (Pervasive) databases via ODBC
5
4
  */
6
5
  export { PsqlService };
7
- /**
8
- * Labor ticket operations for PSQL (Phase 2)
9
- */
10
- export { PsqlLaborTicketOperations };
11
6
  /**
12
7
  * Configuration interface for PSQL connections
13
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/psql-erp-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;GAEG;AACH,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/psql-erp-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
@@ -1,9 +1,6 @@
1
1
  /**
2
2
  * PSQL-specific type definitions
3
3
  */
4
- export interface PsqlConnectionOptions {
5
- connectionString: string;
6
- }
7
4
  export interface OdbcError {
8
5
  state: string;
9
6
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"psql-types.d.ts","sourceRoot":"","sources":["../../../../../src/services/psql-erp-service/internal/types/psql-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"psql-types.d.ts","sourceRoot":"","sources":["../../../../../src/services/psql-erp-service/internal/types/psql-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B"}
@@ -11,7 +11,7 @@ export { addNewFieldFromExternalSource, addNewFieldFromLookupField, } from "./da
11
11
  * Timezone and time-related utilities
12
12
  */
13
13
  export { getTimezoneOffsetAndPersist } from "./time-utils";
14
- export { formatDateWithTZOffset, convertToLocalTime } from "./timezone";
14
+ export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
15
15
  export { applyTimezoneOffsetsToFields } from "./time-utils";
16
16
  export * from "./time-utils";
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjF;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjF;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -18,4 +18,11 @@ export declare const convertToLocalTime: (zuluTime: string | Date | null | undef
18
18
  * @returns The formatted date string in format: YYYY-MM-DDTHH:mm:ss+/-HH:MM
19
19
  */
20
20
  export declare const formatDateWithTZOffset: (date: string | null | undefined, timezoneOffset: number) => string | undefined;
21
+ /**
22
+ * Formats a Date object as an ISO string with the specified timezone offset
23
+ * @param date The Date object to format (should be a Date that has been shifted by convertToLocalTime)
24
+ * @param timezoneOffset The timezone offset in hours
25
+ * @returns ISO string with offset in format: YYYY-MM-DDTHH:mm:ss.SSS±HH:MM
26
+ */
27
+ export declare const toISOWithOffset: (date: Date, timezoneOffset: number) => string;
21
28
  //# sourceMappingURL=timezone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CA6CxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,EAC1C,gBAAgB,MAAM,KACrB,IAAI,GAAG,SAIT,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,gBAAgB,MAAM,KACrB,MAAM,GAAG,SAgBX,CAAC"}
1
+ {"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CA6CxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,EAC1C,gBAAgB,MAAM,KACrB,IAAI,GAAG,SAIT,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,gBAAgB,MAAM,KACrB,MAAM,GAAG,SAgBX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,EAAE,gBAAgB,MAAM,KAAG,MAoBpE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@machinemetrics/mm-erp-sdk",
3
3
  "description": "A library for syncing data between MachineMetrics and ERP systems",
4
- "version": "0.1.8-beta.3",
4
+ "version": "0.1.8-beta.5",
5
5
  "license": "MIT",
6
6
  "author": "machinemetrics",
7
7
  "main": "dist/mm-erp-sdk.js",
package/src/index.ts CHANGED
@@ -112,7 +112,6 @@ export type { SQLInput } from "./services/sql-server-erp-service";
112
112
  // PSQL (Pervasive) services
113
113
  export {
114
114
  PsqlService,
115
- PsqlLaborTicketOperations,
116
115
  formatPsqlDate,
117
116
  formatPsqlTime,
118
117
  combinePsqlDateTime,
@@ -1,16 +1,10 @@
1
1
  import { PsqlService } from "./psql-service";
2
- import { PsqlLaborTicketOperations } from "./internal/psql-labor-ticket-operations";
3
2
 
4
3
  /**
5
4
  * A class to manage interactions with PSQL (Pervasive) databases via ODBC
6
5
  */
7
6
  export { PsqlService };
8
7
 
9
- /**
10
- * Labor ticket operations for PSQL (Phase 2)
11
- */
12
- export { PsqlLaborTicketOperations };
13
-
14
8
  /**
15
9
  * Configuration interface for PSQL connections
16
10
  */
@@ -2,10 +2,6 @@
2
2
  * PSQL-specific type definitions
3
3
  */
4
4
 
5
- export interface PsqlConnectionOptions {
6
- connectionString: string;
7
- }
8
-
9
5
  export interface OdbcError {
10
6
  state: string;
11
7
  message: string;
@@ -65,7 +65,7 @@ export class PsqlService {
65
65
  if (Object.keys(params).length > 0) {
66
66
  logger.warn(
67
67
  "PsqlService: Query parameters provided but parameter binding not yet implemented. " +
68
- "Using direct query execution. This is acceptable for Phase 1 read operations."
68
+ "Using direct query execution."
69
69
  );
70
70
  }
71
71
 
@@ -15,7 +15,7 @@ export {
15
15
  * Timezone and time-related utilities
16
16
  */
17
17
  export { getTimezoneOffsetAndPersist } from "./time-utils";
18
- export { formatDateWithTZOffset, convertToLocalTime } from "./timezone";
18
+ export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
19
19
  export { applyTimezoneOffsetsToFields } from "./time-utils";
20
20
  export * from "./time-utils";
21
21
 
@@ -1,4 +1,4 @@
1
- import { convertToLocalTime } from "./timezone";
1
+ import { convertToLocalTime, toISOWithOffset } from "./timezone";
2
2
  import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
3
3
 
4
4
  /**
@@ -22,7 +22,7 @@ export function convertLaborTicketToLocalTimezone(
22
22
 
23
23
  timeFields.forEach((field) => {
24
24
  const localTime = convertToLocalTime(laborTicket[field], timezoneOffset);
25
- laborTicket[field] = localTime?.toISOString() || null;
25
+ laborTicket[field] = localTime ? toISOWithOffset(localTime, timezoneOffset) : null;
26
26
  });
27
27
  return laborTicket;
28
28
  }
@@ -94,3 +94,31 @@ export const formatDateWithTZOffset = (
94
94
  // Append the timezone offset
95
95
  return `${isoDate}${sign}${hours}:${minutes}`;
96
96
  };
97
+
98
+ /**
99
+ * Formats a Date object as an ISO string with the specified timezone offset
100
+ * @param date The Date object to format (should be a Date that has been shifted by convertToLocalTime)
101
+ * @param timezoneOffset The timezone offset in hours
102
+ * @returns ISO string with offset in format: YYYY-MM-DDTHH:mm:ss.SSS±HH:MM
103
+ */
104
+ export const toISOWithOffset = (date: Date, timezoneOffset: number): string => {
105
+ const sign = timezoneOffset >= 0 ? "+" : "-";
106
+ const abs = Math.abs(timezoneOffset);
107
+ const hours = Math.floor(abs);
108
+ const minutes = Math.round((abs - hours) * 60);
109
+ const pad2 = (n: number) => n.toString().padStart(2, "0");
110
+ const pad3 = (n: number) => n.toString().padStart(3, "0");
111
+
112
+ // Use UTC getters since convertToLocalTime shifts the Date's internal timestamp
113
+ // The UTC components of the shifted Date represent the local wall time
114
+ const yyyy = date.getUTCFullYear();
115
+ const MM = pad2(date.getUTCMonth() + 1);
116
+ const dd = pad2(date.getUTCDate());
117
+ const HH = pad2(date.getUTCHours());
118
+ const mm = pad2(date.getUTCMinutes());
119
+ const ss = pad2(date.getUTCSeconds());
120
+ const SSS = pad3(date.getUTCMilliseconds());
121
+ const off = `${sign}${pad2(hours)}:${pad2(minutes)}`;
122
+
123
+ return `${yyyy}-${MM}-${dd}T${HH}:${mm}:${ss}.${SSS}${off}`;
124
+ };
@@ -1,28 +0,0 @@
1
- import { z } from "zod";
2
- export declare const PsqlConfigSchema: z.ZodObject<{
3
- host: z.ZodString;
4
- port: z.ZodString;
5
- database: z.ZodString;
6
- username: z.ZodString;
7
- password: z.ZodString;
8
- connectionTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
9
- requestTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
10
- }, "strip", z.ZodTypeAny, {
11
- password: string;
12
- database: string;
13
- port: string;
14
- connectionTimeout: string;
15
- requestTimeout: string;
16
- host: string;
17
- username: string;
18
- }, {
19
- password: string;
20
- database: string;
21
- port: string;
22
- host: string;
23
- username: string;
24
- connectionTimeout?: string | undefined;
25
- requestTimeout?: string | undefined;
26
- }>;
27
- export type PsqlConfig = z.infer<typeof PsqlConfigSchema>;
28
- //# sourceMappingURL=psql-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"psql-config.d.ts","sourceRoot":"","sources":["../../../../src/services/psql-erp-service/internal/psql-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EAQ3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * PSQL Labor Ticket Operations
3
- *
4
- * Phase 2: This will handle INSERT/UPDATE/DELETE operations for labor tickets
5
- * Phase 1: Placeholder - throws errors if called
6
- */
7
- import { PsqlService } from "../psql-service";
8
- import { MMReceiveLaborTicket } from "../../../services/mm-api-service";
9
- export declare class PsqlLaborTicketOperations {
10
- private service;
11
- constructor(service: PsqlService);
12
- /**
13
- * Create labor ticket in START_LABOR table
14
- *
15
- * Phase 2 Implementation Notes:
16
- * - Will use prepared statements with parameter binding
17
- * - Insert into START_LABOR table
18
- * - Return GUID as erpUid
19
- *
20
- * @param laborTicket Labor ticket from MachineMetrics
21
- * @returns Labor ticket and ERP unique ID
22
- */
23
- createLaborTicket(laborTicket: MMReceiveLaborTicket): Promise<{
24
- laborTicket: MMReceiveLaborTicket;
25
- erpUid: string;
26
- }>;
27
- /**
28
- * Update labor ticket (move from START_LABOR to COMPLETED_LABOR)
29
- *
30
- * Phase 2 Implementation Notes:
31
- * - Insert into COMPLETED_LABOR
32
- * - Delete from START_LABOR
33
- * - Should be done in a transaction
34
- *
35
- * @param laborTicket Labor ticket to update
36
- * @returns Updated labor ticket
37
- */
38
- updateLaborTicket(laborTicket: MMReceiveLaborTicket): Promise<MMReceiveLaborTicket>;
39
- }
40
- //# sourceMappingURL=psql-labor-ticket-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"psql-labor-ticket-operations.d.ts","sourceRoot":"","sources":["../../../../src/services/psql-erp-service/internal/psql-labor-ticket-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,qBAAa,yBAAyB;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAExC;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IASjE;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC;CAQjC"}
@@ -1,13 +0,0 @@
1
- import { z } from "zod";
2
-
3
- export const PsqlConfigSchema = z.object({
4
- host: z.string().nonempty("Host is required."),
5
- port: z.string().nonempty("Port is required."),
6
- database: z.string().nonempty("Database name is required."),
7
- username: z.string().nonempty("Username is required."),
8
- password: z.string().nonempty("Password is required."),
9
- connectionTimeout: z.string().optional().default("15000"),
10
- requestTimeout: z.string().optional().default("15000"),
11
- });
12
-
13
- export type PsqlConfig = z.infer<typeof PsqlConfigSchema>;
@@ -1,58 +0,0 @@
1
- /**
2
- * PSQL Labor Ticket Operations
3
- *
4
- * Phase 2: This will handle INSERT/UPDATE/DELETE operations for labor tickets
5
- * Phase 1: Placeholder - throws errors if called
6
- */
7
-
8
- import { PsqlService } from "../psql-service";
9
- import { MMReceiveLaborTicket } from "../../../services/mm-api-service";
10
- import logger from "../../reporting-service/logger";
11
-
12
- export class PsqlLaborTicketOperations {
13
- constructor(private service: PsqlService) {}
14
-
15
- /**
16
- * Create labor ticket in START_LABOR table
17
- *
18
- * Phase 2 Implementation Notes:
19
- * - Will use prepared statements with parameter binding
20
- * - Insert into START_LABOR table
21
- * - Return GUID as erpUid
22
- *
23
- * @param laborTicket Labor ticket from MachineMetrics
24
- * @returns Labor ticket and ERP unique ID
25
- */
26
- async createLaborTicket(
27
- laborTicket: MMReceiveLaborTicket
28
- ): Promise<{ laborTicket: MMReceiveLaborTicket; erpUid: string }> {
29
- logger.warn(
30
- "PsqlLaborTicketOperations.createLaborTicket not yet implemented (Phase 2)"
31
- );
32
- throw new Error(
33
- "Labor ticket creation not implemented for PSQL. This is a Phase 2 feature."
34
- );
35
- }
36
-
37
- /**
38
- * Update labor ticket (move from START_LABOR to COMPLETED_LABOR)
39
- *
40
- * Phase 2 Implementation Notes:
41
- * - Insert into COMPLETED_LABOR
42
- * - Delete from START_LABOR
43
- * - Should be done in a transaction
44
- *
45
- * @param laborTicket Labor ticket to update
46
- * @returns Updated labor ticket
47
- */
48
- async updateLaborTicket(
49
- laborTicket: MMReceiveLaborTicket
50
- ): Promise<MMReceiveLaborTicket> {
51
- logger.warn(
52
- "PsqlLaborTicketOperations.updateLaborTicket not yet implemented (Phase 2)"
53
- );
54
- throw new Error(
55
- "Labor ticket update not implemented for PSQL. This is a Phase 2 feature."
56
- );
57
- }
58
- }