tychat-contracts 1.0.77 → 1.0.79

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.
@@ -0,0 +1,40 @@
1
+ import { EventAnalyticType } from './event-analytic.enum';
2
+ import { CreateAnalyticEventDto } from './create-analytic-event.dto';
3
+ import { TOPIC_ANALYTICS_EVENT } from './analytics-kafka-topics';
4
+ /**
5
+ * Options for building an analytic event payload.
6
+ */
7
+ export interface EmitAnalyticEventOptions {
8
+ tenant: string;
9
+ eventType: EventAnalyticType;
10
+ entityId?: string;
11
+ userId?: string;
12
+ metadata?: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * Builds the Kafka payload to be sent to the analytics service.
16
+ *
17
+ * Usage (fire-and-forget via ClientKafka.emit):
18
+ * ```ts
19
+ * this.analyticsClient.emit(
20
+ * TOPIC_ANALYTICS_EVENT,
21
+ * buildAnalyticEventPayload({
22
+ * tenant,
23
+ * eventType: 'patient.created',
24
+ * entityId: patient.id,
25
+ * source: 'tychat-patient-service',
26
+ * }),
27
+ * );
28
+ * ```
29
+ */
30
+ export declare function buildAnalyticEventPayload(options: EmitAnalyticEventOptions & {
31
+ source: string;
32
+ }): {
33
+ tenant: string;
34
+ payload: CreateAnalyticEventDto;
35
+ };
36
+ /**
37
+ * Re-export for convenience so services only need one import.
38
+ */
39
+ export { TOPIC_ANALYTICS_EVENT };
40
+ //# sourceMappingURL=analytics-emitter.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-emitter.helper.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics-emitter.helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,wBAAwB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,CAcrD;AAED;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOPIC_ANALYTICS_EVENT = void 0;
4
+ exports.buildAnalyticEventPayload = buildAnalyticEventPayload;
5
+ const crypto_1 = require("crypto");
6
+ const analytics_kafka_topics_1 = require("./analytics-kafka-topics");
7
+ Object.defineProperty(exports, "TOPIC_ANALYTICS_EVENT", { enumerable: true, get: function () { return analytics_kafka_topics_1.TOPIC_ANALYTICS_EVENT; } });
8
+ /**
9
+ * Builds the Kafka payload to be sent to the analytics service.
10
+ *
11
+ * Usage (fire-and-forget via ClientKafka.emit):
12
+ * ```ts
13
+ * this.analyticsClient.emit(
14
+ * TOPIC_ANALYTICS_EVENT,
15
+ * buildAnalyticEventPayload({
16
+ * tenant,
17
+ * eventType: 'patient.created',
18
+ * entityId: patient.id,
19
+ * source: 'tychat-patient-service',
20
+ * }),
21
+ * );
22
+ * ```
23
+ */
24
+ function buildAnalyticEventPayload(options) {
25
+ return {
26
+ tenant: options.tenant,
27
+ payload: {
28
+ eventId: (0, crypto_1.randomUUID)(),
29
+ tenant: options.tenant,
30
+ eventType: options.eventType,
31
+ entityId: options.entityId,
32
+ source: options.source,
33
+ userId: options.userId,
34
+ metadata: options.metadata,
35
+ occurredAt: new Date().toISOString(),
36
+ },
37
+ };
38
+ }
@@ -2,4 +2,5 @@ export * from './event-analytic.enum';
2
2
  export * from './create-analytic-event.dto';
3
3
  export * from './analytics-query.dto';
4
4
  export * from './analytics-kafka-topics';
5
+ export * from './analytics-emitter.helper';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
@@ -18,3 +18,4 @@ __exportStar(require("./event-analytic.enum"), exports);
18
18
  __exportStar(require("./create-analytic-event.dto"), exports);
19
19
  __exportStar(require("./analytics-query.dto"), exports);
20
20
  __exportStar(require("./analytics-kafka-topics"), exports);
21
+ __exportStar(require("./analytics-emitter.helper"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tychat-contracts",
3
- "version": "1.0.77",
3
+ "version": "1.0.79",
4
4
  "description": "DTOs compartilhados com class-validator (API e microserviços)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,54 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { EventAnalyticType } from './event-analytic.enum';
3
+ import { CreateAnalyticEventDto } from './create-analytic-event.dto';
4
+ import { TOPIC_ANALYTICS_EVENT } from './analytics-kafka-topics';
5
+
6
+ /**
7
+ * Options for building an analytic event payload.
8
+ */
9
+ export interface EmitAnalyticEventOptions {
10
+ tenant: string;
11
+ eventType: EventAnalyticType;
12
+ entityId?: string;
13
+ userId?: string;
14
+ metadata?: Record<string, unknown>;
15
+ }
16
+
17
+ /**
18
+ * Builds the Kafka payload to be sent to the analytics service.
19
+ *
20
+ * Usage (fire-and-forget via ClientKafka.emit):
21
+ * ```ts
22
+ * this.analyticsClient.emit(
23
+ * TOPIC_ANALYTICS_EVENT,
24
+ * buildAnalyticEventPayload({
25
+ * tenant,
26
+ * eventType: 'patient.created',
27
+ * entityId: patient.id,
28
+ * source: 'tychat-patient-service',
29
+ * }),
30
+ * );
31
+ * ```
32
+ */
33
+ export function buildAnalyticEventPayload(
34
+ options: EmitAnalyticEventOptions & { source: string },
35
+ ): { tenant: string; payload: CreateAnalyticEventDto } {
36
+ return {
37
+ tenant: options.tenant,
38
+ payload: {
39
+ eventId: randomUUID(),
40
+ tenant: options.tenant,
41
+ eventType: options.eventType,
42
+ entityId: options.entityId,
43
+ source: options.source,
44
+ userId: options.userId,
45
+ metadata: options.metadata,
46
+ occurredAt: new Date().toISOString(),
47
+ },
48
+ };
49
+ }
50
+
51
+ /**
52
+ * Re-export for convenience so services only need one import.
53
+ */
54
+ export { TOPIC_ANALYTICS_EVENT };
@@ -2,3 +2,4 @@ export * from './event-analytic.enum';
2
2
  export * from './create-analytic-event.dto';
3
3
  export * from './analytics-query.dto';
4
4
  export * from './analytics-kafka-topics';
5
+ export * from './analytics-emitter.helper';