@crm-rocketlink/crm-model 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './util/constants';
2
+ export * from './util/dateUtils';
3
+ export { isDateString, dateToString, stringToDate, getCurrentDateCompacted, FORMATS } from './util/dateUtils';
2
4
  export * from './dtos/common/base.request.dto';
3
5
  export * from './dtos/common/paginated.request.dto';
4
6
  export * from './dtos/common/paginated.response.dto';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,kDAAkD,CAAC;AAGjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AAGvE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,iDAAiD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG9G,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAElC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,kDAAkD,CAAC;AAGjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AAGvE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,iDAAiD,CAAC"}
package/dist/index.js CHANGED
@@ -14,8 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FORMATS = exports.getCurrentDateCompacted = exports.stringToDate = exports.dateToString = exports.isDateString = void 0;
17
18
  // Export constants
18
19
  __exportStar(require("./util/constants"), exports);
20
+ __exportStar(require("./util/dateUtils"), exports);
21
+ var dateUtils_1 = require("./util/dateUtils");
22
+ Object.defineProperty(exports, "isDateString", { enumerable: true, get: function () { return dateUtils_1.isDateString; } });
23
+ Object.defineProperty(exports, "dateToString", { enumerable: true, get: function () { return dateUtils_1.dateToString; } });
24
+ Object.defineProperty(exports, "stringToDate", { enumerable: true, get: function () { return dateUtils_1.stringToDate; } });
25
+ Object.defineProperty(exports, "getCurrentDateCompacted", { enumerable: true, get: function () { return dateUtils_1.getCurrentDateCompacted; } });
26
+ Object.defineProperty(exports, "FORMATS", { enumerable: true, get: function () { return dateUtils_1.FORMATS; } });
19
27
  // Export all DTOs
20
28
  __exportStar(require("./dtos/common/base.request.dto"), exports);
21
29
  __exportStar(require("./dtos/common/paginated.request.dto"), exports);
@@ -22,5 +22,6 @@ export interface Subscription {
22
22
  leadId?: number;
23
23
  leadName?: string;
24
24
  leadEmail?: string;
25
+ bankName?: string;
25
26
  }
26
27
  //# sourceMappingURL=subscription.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.model.d.ts","sourceRoot":"","sources":["../../src/model/subscription.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"subscription.model.d.ts","sourceRoot":"","sources":["../../src/model/subscription.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.model.d.ts","sourceRoot":"","sources":["../../src/model/transaction.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE9F,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEpG,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,oBAAoB,CAAC;IAC/C,yBAAyB,CAAC,EAAE,kBAAkB,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"transaction.model.d.ts","sourceRoot":"","sources":["../../src/model/transaction.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE9F,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEpG,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,oBAAoB,CAAC;IAC/C,yBAAyB,CAAC,EAAE,kBAAkB,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -0,0 +1,21 @@
1
+ export declare const FORMATS: {
2
+ readonly ISO_DATE: "yyyy-MM-dd";
3
+ readonly ISO_DATE_TIME_TZ: "yyyy-MM-dd'T'HH:mm";
4
+ readonly ISO_DATE_TIME_MINUTES: "yyyy-MM-dd HH:mm";
5
+ readonly ISO_DATE_TIME_SECONDS: "yyyy-MM-dd HH:mm:ss";
6
+ readonly COMPACT_DATETIME: "yyyyMMddHHmmss";
7
+ readonly COMPACT_DATE: "yyyyMMdd";
8
+ };
9
+ export declare function dateToString(date: Date, formatString?: string): string;
10
+ export declare function dateToYYYYMMDD(date: Date): string;
11
+ export declare function dateToTZ(date: Date): string;
12
+ export declare function dateToMinutes(date: Date): string;
13
+ export declare function getCurrentDateCompacted(): string;
14
+ export declare function isDateString(value: string): boolean;
15
+ export declare function stringToDate(value: string): Date;
16
+ export declare function formatDateString(value: string, formatString?: string): string;
17
+ export declare function formatDateAs_yyyymmdd(value: string): string;
18
+ export declare function formatDateAs_tz(value: string): string;
19
+ export declare function formatDateAs_minutes(value: string): string;
20
+ export declare function formatDateAs_seconds(value: string): string;
21
+ //# sourceMappingURL=dateUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/util/dateUtils.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO;;;;;;;CAOV,CAAC;AAIX,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,GAAE,MAAyB,GAAG,MAAM,CAKxF;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEjD;AACD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE3C;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhD;AACD,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAShD;AAID,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAyB,GAAG,MAAM,CAM/F;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORMATS = void 0;
4
+ exports.dateToString = dateToString;
5
+ exports.dateToYYYYMMDD = dateToYYYYMMDD;
6
+ exports.dateToTZ = dateToTZ;
7
+ exports.dateToMinutes = dateToMinutes;
8
+ exports.getCurrentDateCompacted = getCurrentDateCompacted;
9
+ exports.isDateString = isDateString;
10
+ exports.stringToDate = stringToDate;
11
+ exports.formatDateString = formatDateString;
12
+ exports.formatDateAs_yyyymmdd = formatDateAs_yyyymmdd;
13
+ exports.formatDateAs_tz = formatDateAs_tz;
14
+ exports.formatDateAs_minutes = formatDateAs_minutes;
15
+ exports.formatDateAs_seconds = formatDateAs_seconds;
16
+ const date_fns_1 = require("date-fns");
17
+ exports.FORMATS = {
18
+ ISO_DATE: 'yyyy-MM-dd', // "2026-01-07"
19
+ ISO_DATE_TIME_TZ: "yyyy-MM-dd'T'HH:mm", // "2026-01-07T14:30"
20
+ ISO_DATE_TIME_MINUTES: 'yyyy-MM-dd HH:mm', // "2026-01-07 14:30
21
+ ISO_DATE_TIME_SECONDS: 'yyyy-MM-dd HH:mm:ss', // "2026-01-07 14:30:23,
22
+ COMPACT_DATETIME: 'yyyyMMddHHmmss', // "20260107143000"
23
+ COMPACT_DATE: 'yyyyMMdd', // "20260107"
24
+ };
25
+ // ============================================
26
+ // Date → String formatted conversions
27
+ // ============================================
28
+ function dateToString(date, formatString = exports.FORMATS.ISO_DATE) {
29
+ if (!date || !(0, date_fns_1.isValid)(date)) {
30
+ throw new Error('Invalid date: ' + date);
31
+ }
32
+ return (0, date_fns_1.format)(date, formatString);
33
+ }
34
+ function dateToYYYYMMDD(date) {
35
+ return dateToString(date, exports.FORMATS.COMPACT_DATETIME);
36
+ }
37
+ function dateToTZ(date) {
38
+ return dateToString(date, exports.FORMATS.ISO_DATE_TIME_TZ);
39
+ }
40
+ function dateToMinutes(date) {
41
+ return dateToString(date, exports.FORMATS.ISO_DATE_TIME_MINUTES);
42
+ }
43
+ function getCurrentDateCompacted() {
44
+ return dateToYYYYMMDD(new Date()); // "20260107143000"
45
+ }
46
+ // Checks if a string matches a date pattern
47
+ function isDateString(value) {
48
+ const datePattern = /^\d{4}-\d{2}-\d{2}(T|\s)\d{2}:\d{2}:\d{2}/;
49
+ return datePattern.test(value);
50
+ }
51
+ // ============================================
52
+ // String → Date conversions
53
+ // ============================================
54
+ function stringToDate(value) {
55
+ if (!value) {
56
+ throw new Error('Date string cannot be empty');
57
+ }
58
+ const date = (0, date_fns_1.parseISO)(value);
59
+ if (!(0, date_fns_1.isValid)(date)) {
60
+ throw new Error('Invalid date string: ' + value);
61
+ }
62
+ return date;
63
+ }
64
+ // ============================================
65
+ // String → String formatted conversions
66
+ // ============================================
67
+ function formatDateString(value, formatString = exports.FORMATS.ISO_DATE) {
68
+ if (!value) {
69
+ return '';
70
+ }
71
+ const date = stringToDate(value);
72
+ return (0, date_fns_1.format)(date, formatString);
73
+ }
74
+ function formatDateAs_yyyymmdd(value) {
75
+ return formatDateString(value, exports.FORMATS.ISO_DATE);
76
+ }
77
+ function formatDateAs_tz(value) {
78
+ return formatDateString(value, exports.FORMATS.ISO_DATE_TIME_TZ);
79
+ }
80
+ function formatDateAs_minutes(value) {
81
+ return formatDateString(value, exports.FORMATS.ISO_DATE_TIME_MINUTES);
82
+ }
83
+ function formatDateAs_seconds(value) {
84
+ return formatDateString(value, exports.FORMATS.ISO_DATE_TIME_SECONDS);
85
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crm-rocketlink/crm-model",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Shared DTOs and Models for CRM Rocketlink",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,6 +18,9 @@
18
18
  "publishConfig": {
19
19
  "access": "restricted"
20
20
  },
21
+ "dependencies": {
22
+ "date-fns": "^3.0.0"
23
+ },
21
24
  "devDependencies": {
22
25
  "@types/node": "^22.10.6",
23
26
  "typescript": "^5.7.3"
package/src/index.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  // Export constants
2
2
  export * from './util/constants';
3
+ export * from './util/dateUtils';
4
+ export { isDateString, dateToString, stringToDate, getCurrentDateCompacted, FORMATS } from './util/dateUtils';
3
5
 
4
6
  // Export all DTOs
5
7
  export * from './dtos/common/base.request.dto';
@@ -25,4 +25,5 @@ export interface Subscription {
25
25
  leadId?: number;
26
26
  leadName?: string;
27
27
  leadEmail?: string;
28
+ bankName?: string;
28
29
  }
@@ -1,3 +1,4 @@
1
+ // crm-model/src/model/transaction.model.ts
1
2
  import { BANKS } from "./gateway.model";
2
3
 
3
4
  export const TRANSACTION_STATUS = {
@@ -0,0 +1,71 @@
1
+ import { format, isValid, parseISO } from 'date-fns';
2
+ export const FORMATS = {
3
+ ISO_DATE: 'yyyy-MM-dd', // "2026-01-07"
4
+ ISO_DATE_TIME_TZ: "yyyy-MM-dd'T'HH:mm", // "2026-01-07T14:30"
5
+ ISO_DATE_TIME_MINUTES: 'yyyy-MM-dd HH:mm', // "2026-01-07 14:30
6
+ ISO_DATE_TIME_SECONDS: 'yyyy-MM-dd HH:mm:ss', // "2026-01-07 14:30:23,
7
+ COMPACT_DATETIME: 'yyyyMMddHHmmss', // "20260107143000"
8
+ COMPACT_DATE: 'yyyyMMdd', // "20260107"
9
+ } as const;
10
+ // ============================================
11
+ // Date → String formatted conversions
12
+ // ============================================
13
+ export function dateToString(date: Date, formatString: string = FORMATS.ISO_DATE): string {
14
+ if (!date || !isValid(date)) {
15
+ throw new Error('Invalid date: ' + date);
16
+ }
17
+ return format(date, formatString);
18
+ }
19
+ export function dateToYYYYMMDD(date: Date): string {
20
+ return dateToString(date, FORMATS.COMPACT_DATETIME);
21
+ }
22
+ export function dateToTZ(date: Date): string {
23
+ return dateToString(date, FORMATS.ISO_DATE_TIME_TZ);
24
+ }
25
+ export function dateToMinutes(date: Date): string {
26
+ return dateToString(date, FORMATS.ISO_DATE_TIME_MINUTES);
27
+ }
28
+ export function getCurrentDateCompacted(): string {
29
+ return dateToYYYYMMDD(new Date()); // "20260107143000"
30
+ }
31
+
32
+ // Checks if a string matches a date pattern
33
+ export function isDateString(value: string): boolean {
34
+ const datePattern = /^\d{4}-\d{2}-\d{2}(T|\s)\d{2}:\d{2}:\d{2}/;
35
+ return datePattern.test(value);
36
+ }
37
+ // ============================================
38
+ // String → Date conversions
39
+ // ============================================
40
+ export function stringToDate(value: string): Date {
41
+ if (!value) {
42
+ throw new Error('Date string cannot be empty');
43
+ }
44
+ const date = parseISO(value);
45
+ if (!isValid(date)) {
46
+ throw new Error('Invalid date string: ' + value);
47
+ }
48
+ return date;
49
+ }
50
+ // ============================================
51
+ // String → String formatted conversions
52
+ // ============================================
53
+ export function formatDateString(value: string, formatString: string = FORMATS.ISO_DATE): string {
54
+ if (!value) {
55
+ return '';
56
+ }
57
+ const date = stringToDate(value);
58
+ return format(date, formatString);
59
+ }
60
+ export function formatDateAs_yyyymmdd(value: string): string {
61
+ return formatDateString(value, FORMATS.ISO_DATE);
62
+ }
63
+ export function formatDateAs_tz(value: string): string {
64
+ return formatDateString(value, FORMATS.ISO_DATE_TIME_TZ);
65
+ }
66
+ export function formatDateAs_minutes(value: string): string {
67
+ return formatDateString(value, FORMATS.ISO_DATE_TIME_MINUTES);
68
+ }
69
+ export function formatDateAs_seconds(value: string): string {
70
+ return formatDateString(value, FORMATS.ISO_DATE_TIME_SECONDS);
71
+ }
package/appspec.yml DELETED
@@ -1,19 +0,0 @@
1
- version: 0.0
2
- os: linux
3
- files:
4
- - source: /
5
- destination: /home/ubuntu/_APP_DESTINATION_FOLDER_
6
-
7
- hooks:
8
- BeforeInstall:
9
- - location: scripts/1.before_install.sh
10
- timeout: 300
11
- runas: ubuntu
12
- AfterInstall:
13
- - location: scripts/2.after_install.sh
14
- timeout: 300
15
- runas: ubuntu
16
- ApplicationStart:
17
- - location: scripts/3.application_start.sh
18
- timeout: 300
19
- runas: ubuntu
@@ -1,4 +0,0 @@
1
- #!/bin/bash
2
-
3
- sudo rm -rf /home/ubuntu/_APP_DESTINATION_FOLDER_
4
- mkdir /home/ubuntu/_APP_DESTINATION_FOLDER_
@@ -1,5 +0,0 @@
1
- #!/bin/bash
2
-
3
- cd /home/ubuntu/_APP_DESTINATION_FOLDER_
4
- sudo chmod 777 -R ./
5
- npm install
@@ -1,8 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "application_start.sh NODE_ENV: '_APP_NODE_ENV_', APP_FULL_NAME: _APP_FULL_NAME_, APP_LABEL: _APP_LABEL_"
4
-
5
- cd /home/ubuntu/_APP_DESTINATION_FOLDER_
6
-
7
- echo "Building app: run _APP_BUILD_"
8
- npm run _APP_BUILD_