@zeeshan60/event-processor 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.
@@ -0,0 +1,41 @@
1
+ import { Event } from './common/Event';
2
+ import { Model } from './common/Model';
3
+ export declare enum SourceType {
4
+ Transaction = "Transaction",
5
+ User = "User",
6
+ Friend = "Friend"
7
+ }
8
+ export interface ActivityLogModel extends Model {
9
+ activityByUid: string;
10
+ sourceStreamId: string;
11
+ sourceType: SourceType;
12
+ logMessage: string;
13
+ date: Date;
14
+ }
15
+ export interface ActivityLogCreatedProps {
16
+ userId: string;
17
+ activityByUid: string;
18
+ sourceStreamId: string;
19
+ sourceType: SourceType;
20
+ logMessage: string;
21
+ date: Date;
22
+ createdAt: Date;
23
+ createdBy: string;
24
+ streamId: string;
25
+ version: number;
26
+ }
27
+ export declare class ActivityLogCreated implements Event {
28
+ userId: string;
29
+ activityByUid: string;
30
+ sourceStreamId: string;
31
+ sourceType: SourceType;
32
+ logMessage: string;
33
+ date: Date;
34
+ createdAt: Date;
35
+ createdBy: string;
36
+ streamId: string;
37
+ version: number;
38
+ constructor(props: ActivityLogCreatedProps);
39
+ apply(_existing?: Model): ActivityLogModel;
40
+ }
41
+ //# sourceMappingURL=ActivityLogEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityLogEvents.d.ts","sourceRoot":"","sources":["../src/ActivityLogEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAmB,YAAW,KAAK;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,uBAAuB;IAa1C,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,gBAAgB;CAa3C"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivityLogCreated = exports.SourceType = void 0;
4
+ var SourceType;
5
+ (function (SourceType) {
6
+ SourceType["Transaction"] = "Transaction";
7
+ SourceType["User"] = "User";
8
+ SourceType["Friend"] = "Friend";
9
+ })(SourceType || (exports.SourceType = SourceType = {}));
10
+ class ActivityLogCreated {
11
+ constructor(props) {
12
+ this.userId = props.userId;
13
+ this.activityByUid = props.activityByUid;
14
+ this.sourceStreamId = props.sourceStreamId;
15
+ this.sourceType = props.sourceType;
16
+ this.logMessage = props.logMessage;
17
+ this.date = props.date;
18
+ this.createdAt = props.createdAt;
19
+ this.createdBy = props.createdBy;
20
+ this.streamId = props.streamId;
21
+ this.version = props.version;
22
+ }
23
+ apply(_existing) {
24
+ return {
25
+ streamId: this.streamId,
26
+ userId: this.userId,
27
+ activityByUid: this.activityByUid,
28
+ sourceStreamId: this.sourceStreamId,
29
+ sourceType: this.sourceType,
30
+ logMessage: this.logMessage,
31
+ date: this.date,
32
+ deleted: false,
33
+ version: this.version,
34
+ };
35
+ }
36
+ }
37
+ exports.ActivityLogCreated = ActivityLogCreated;
@@ -0,0 +1,122 @@
1
+ import { Event } from './common/Event';
2
+ import { Model } from './common/Model';
3
+ import { ActivityLogCreatedProps } from './ActivityLogEvents';
4
+ export declare enum FriendEventType {
5
+ FRIEND_CREATED = "FRIEND_CREATED",
6
+ FRIEND_UPDATED = "FRIEND_UPDATED",
7
+ FRIEND_DELETED = "FRIEND_DELETED",
8
+ FRIEND_ID_ADDED = "FRIEND_ID_ADDED",
9
+ FRIEND_ID_REMOVED = "FRIEND_ID_REMOVED"
10
+ }
11
+ export interface FriendModel extends Model {
12
+ friendId?: string;
13
+ friendEmail?: string;
14
+ friendPhoneNumber?: string;
15
+ groupId?: string;
16
+ friendDisplayName: string;
17
+ createdAt: Date;
18
+ updatedAt: Date;
19
+ }
20
+ export interface FriendCreatedProps {
21
+ userId: string;
22
+ friendEmail?: string;
23
+ friendPhoneNumber?: string;
24
+ friendDisplayName: string;
25
+ friendId?: string;
26
+ groupId?: string;
27
+ createdAt: Date;
28
+ createdBy: string;
29
+ streamId: string;
30
+ version: number;
31
+ }
32
+ export declare class FriendCreated implements Event {
33
+ userId: string;
34
+ friendEmail?: string;
35
+ friendPhoneNumber?: string;
36
+ friendDisplayName: string;
37
+ friendId?: string;
38
+ groupId?: string;
39
+ createdAt: Date;
40
+ createdBy: string;
41
+ streamId: string;
42
+ version: number;
43
+ constructor(props: FriendCreatedProps);
44
+ apply(_existing?: Model): FriendModel;
45
+ activityLog(_existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
46
+ }
47
+ export interface FriendUpdatedProps {
48
+ userId?: string;
49
+ friendEmail?: string;
50
+ friendPhoneNumber?: string;
51
+ friendDisplayName?: string;
52
+ createdAt: Date;
53
+ createdBy: string;
54
+ streamId: string;
55
+ version: number;
56
+ }
57
+ export declare class FriendUpdated implements Event {
58
+ userId?: string;
59
+ friendEmail?: string;
60
+ friendPhoneNumber?: string;
61
+ friendDisplayName?: string;
62
+ createdAt: Date;
63
+ createdBy: string;
64
+ streamId: string;
65
+ version: number;
66
+ constructor(props: FriendUpdatedProps);
67
+ apply(existing?: Model): FriendModel;
68
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
69
+ }
70
+ export interface FriendDeletedProps {
71
+ userId?: string;
72
+ createdAt: Date;
73
+ createdBy: string;
74
+ streamId: string;
75
+ version: number;
76
+ }
77
+ export declare class FriendDeleted implements Event {
78
+ userId?: string;
79
+ createdAt: Date;
80
+ createdBy: string;
81
+ streamId: string;
82
+ version: number;
83
+ constructor(props: FriendDeletedProps);
84
+ apply(existing?: Model): FriendModel;
85
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
86
+ }
87
+ export interface FriendIdAddedProps {
88
+ userId?: string;
89
+ friendId: string;
90
+ createdAt: Date;
91
+ createdBy: string;
92
+ streamId: string;
93
+ version: number;
94
+ }
95
+ export declare class FriendIdAdded implements Event {
96
+ userId?: string;
97
+ friendId: string;
98
+ createdAt: Date;
99
+ createdBy: string;
100
+ streamId: string;
101
+ version: number;
102
+ constructor(props: FriendIdAddedProps);
103
+ apply(existing?: Model): FriendModel;
104
+ activityLog(existing?: Model, _actorName?: string): ActivityLogCreatedProps | undefined;
105
+ }
106
+ export interface FriendIdRemovedProps {
107
+ userId?: string;
108
+ createdAt: Date;
109
+ createdBy: string;
110
+ streamId: string;
111
+ version: number;
112
+ }
113
+ export declare class FriendIdRemoved implements Event {
114
+ userId?: string;
115
+ createdAt: Date;
116
+ createdBy: string;
117
+ streamId: string;
118
+ version: number;
119
+ constructor(props: FriendIdRemovedProps);
120
+ apply(existing?: Model): FriendModel;
121
+ }
122
+ //# sourceMappingURL=FriendEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FriendEvents.d.ts","sourceRoot":"","sources":["../src/FriendEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAc,MAAM,qBAAqB,CAAC;AAG1E,oBAAY,eAAe;IACzB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;CACxC;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,kBAAkB;IAarC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,WAAW;IAgBrC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAiBxF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,kBAAkB;IAWrC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW;IAepC,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAuBvF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,kBAAkB;IAQrC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW;IAapC,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAsBvF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,kBAAkB;IASrC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW;IAapC,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;CAqBxF;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,YAAW,KAAK;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,oBAAoB;IAQvC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW;CAYrC"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FriendIdRemoved = exports.FriendIdAdded = exports.FriendDeleted = exports.FriendUpdated = exports.FriendCreated = exports.FriendEventType = void 0;
4
+ const ActivityLogEvents_1 = require("./ActivityLogEvents");
5
+ const uuid_1 = require("uuid");
6
+ var FriendEventType;
7
+ (function (FriendEventType) {
8
+ FriendEventType["FRIEND_CREATED"] = "FRIEND_CREATED";
9
+ FriendEventType["FRIEND_UPDATED"] = "FRIEND_UPDATED";
10
+ FriendEventType["FRIEND_DELETED"] = "FRIEND_DELETED";
11
+ FriendEventType["FRIEND_ID_ADDED"] = "FRIEND_ID_ADDED";
12
+ FriendEventType["FRIEND_ID_REMOVED"] = "FRIEND_ID_REMOVED";
13
+ })(FriendEventType || (exports.FriendEventType = FriendEventType = {}));
14
+ class FriendCreated {
15
+ constructor(props) {
16
+ this.userId = props.userId;
17
+ this.friendEmail = props.friendEmail;
18
+ this.friendPhoneNumber = props.friendPhoneNumber;
19
+ this.friendDisplayName = props.friendDisplayName;
20
+ this.friendId = props.friendId;
21
+ this.groupId = props.groupId;
22
+ this.createdAt = props.createdAt;
23
+ this.createdBy = props.createdBy;
24
+ this.streamId = props.streamId;
25
+ this.version = props.version;
26
+ }
27
+ apply(_existing) {
28
+ return {
29
+ streamId: this.streamId,
30
+ userId: this.userId,
31
+ friendId: this.friendId,
32
+ friendEmail: this.friendEmail,
33
+ friendPhoneNumber: this.friendPhoneNumber,
34
+ groupId: this.groupId,
35
+ friendDisplayName: this.friendDisplayName,
36
+ createdAt: this.createdAt,
37
+ updatedAt: this.createdAt,
38
+ version: this.version,
39
+ deleted: false,
40
+ };
41
+ }
42
+ activityLog(_existing, actorName) {
43
+ const actor = actorName ?? 'You';
44
+ const logMessage = `${actor} added friend "${this.friendDisplayName}"`;
45
+ return {
46
+ userId: this.userId,
47
+ activityByUid: this.createdBy,
48
+ sourceStreamId: this.streamId,
49
+ sourceType: ActivityLogEvents_1.SourceType.Friend,
50
+ logMessage,
51
+ date: this.createdAt,
52
+ createdAt: this.createdAt,
53
+ createdBy: this.createdBy,
54
+ streamId: (0, uuid_1.v4)(),
55
+ version: 1,
56
+ };
57
+ }
58
+ }
59
+ exports.FriendCreated = FriendCreated;
60
+ class FriendUpdated {
61
+ constructor(props) {
62
+ this.userId = props.userId;
63
+ this.friendEmail = props.friendEmail;
64
+ this.friendPhoneNumber = props.friendPhoneNumber;
65
+ this.friendDisplayName = props.friendDisplayName;
66
+ this.createdAt = props.createdAt;
67
+ this.createdBy = props.createdBy;
68
+ this.streamId = props.streamId;
69
+ this.version = props.version;
70
+ }
71
+ apply(existing) {
72
+ if (!existing) {
73
+ throw new Error('Friend must exist to update');
74
+ }
75
+ const existingFriend = existing;
76
+ return {
77
+ ...existingFriend,
78
+ friendEmail: this.friendEmail ?? existingFriend.friendEmail,
79
+ friendPhoneNumber: this.friendPhoneNumber ?? existingFriend.friendPhoneNumber,
80
+ friendDisplayName: this.friendDisplayName ?? existingFriend.friendDisplayName,
81
+ updatedAt: this.createdAt,
82
+ version: this.version,
83
+ };
84
+ }
85
+ activityLog(existing, actorName) {
86
+ if (!existing) {
87
+ return undefined;
88
+ }
89
+ const existingFriend = existing;
90
+ const actor = actorName ?? 'You';
91
+ const friendName = this.friendDisplayName ?? existingFriend.friendDisplayName;
92
+ const logMessage = `${actor} updated friend "${friendName}"`;
93
+ return {
94
+ userId: existingFriend.userId,
95
+ activityByUid: this.createdBy,
96
+ sourceStreamId: this.streamId,
97
+ sourceType: ActivityLogEvents_1.SourceType.Friend,
98
+ logMessage,
99
+ date: this.createdAt,
100
+ createdAt: this.createdAt,
101
+ createdBy: this.createdBy,
102
+ streamId: (0, uuid_1.v4)(),
103
+ version: 1,
104
+ };
105
+ }
106
+ }
107
+ exports.FriendUpdated = FriendUpdated;
108
+ class FriendDeleted {
109
+ constructor(props) {
110
+ this.userId = props.userId;
111
+ this.createdAt = props.createdAt;
112
+ this.createdBy = props.createdBy;
113
+ this.streamId = props.streamId;
114
+ this.version = props.version;
115
+ }
116
+ apply(existing) {
117
+ if (!existing) {
118
+ throw new Error('Friend must exist to delete');
119
+ }
120
+ const existingFriend = existing;
121
+ return {
122
+ ...existingFriend,
123
+ updatedAt: this.createdAt,
124
+ version: this.version,
125
+ deleted: true,
126
+ };
127
+ }
128
+ activityLog(existing, actorName) {
129
+ if (!existing) {
130
+ return undefined;
131
+ }
132
+ const existingFriend = existing;
133
+ const actor = actorName ?? 'You';
134
+ const logMessage = `${actor} removed friend "${existingFriend.friendDisplayName}"`;
135
+ return {
136
+ userId: existingFriend.userId,
137
+ activityByUid: this.createdBy,
138
+ sourceStreamId: this.streamId,
139
+ sourceType: ActivityLogEvents_1.SourceType.Friend,
140
+ logMessage,
141
+ date: this.createdAt,
142
+ createdAt: this.createdAt,
143
+ createdBy: this.createdBy,
144
+ streamId: (0, uuid_1.v4)(),
145
+ version: 1,
146
+ };
147
+ }
148
+ }
149
+ exports.FriendDeleted = FriendDeleted;
150
+ class FriendIdAdded {
151
+ constructor(props) {
152
+ this.userId = props.userId;
153
+ this.friendId = props.friendId;
154
+ this.createdAt = props.createdAt;
155
+ this.createdBy = props.createdBy;
156
+ this.streamId = props.streamId;
157
+ this.version = props.version;
158
+ }
159
+ apply(existing) {
160
+ if (!existing) {
161
+ throw new Error('Friend must exist to add friend ID');
162
+ }
163
+ const existingFriend = existing;
164
+ return {
165
+ ...existingFriend,
166
+ friendId: this.friendId,
167
+ updatedAt: this.createdAt,
168
+ version: this.version,
169
+ };
170
+ }
171
+ activityLog(existing, _actorName) {
172
+ if (!existing) {
173
+ return undefined;
174
+ }
175
+ const existingFriend = existing;
176
+ const logMessage = `Friend "${existingFriend.friendDisplayName}" was linked to their account`;
177
+ return {
178
+ userId: existingFriend.userId,
179
+ activityByUid: this.createdBy,
180
+ sourceStreamId: this.streamId,
181
+ sourceType: ActivityLogEvents_1.SourceType.Friend,
182
+ logMessage,
183
+ date: this.createdAt,
184
+ createdAt: this.createdAt,
185
+ createdBy: this.createdBy,
186
+ streamId: (0, uuid_1.v4)(),
187
+ version: 1,
188
+ };
189
+ }
190
+ }
191
+ exports.FriendIdAdded = FriendIdAdded;
192
+ class FriendIdRemoved {
193
+ constructor(props) {
194
+ this.userId = props.userId;
195
+ this.createdAt = props.createdAt;
196
+ this.createdBy = props.createdBy;
197
+ this.streamId = props.streamId;
198
+ this.version = props.version;
199
+ }
200
+ apply(existing) {
201
+ if (!existing) {
202
+ throw new Error('Friend must exist to remove friend ID');
203
+ }
204
+ const existingFriend = existing;
205
+ return {
206
+ ...existingFriend,
207
+ friendId: undefined,
208
+ updatedAt: this.createdAt,
209
+ version: this.version,
210
+ };
211
+ }
212
+ }
213
+ exports.FriendIdRemoved = FriendIdRemoved;
@@ -1,5 +1,6 @@
1
1
  import { Event } from './common/Event';
2
2
  import { Model } from './common/Model';
3
+ import { ActivityLogCreatedProps } from './ActivityLogEvents';
3
4
  export declare enum SplitType {
4
5
  YouPaidSplitEqually = "YouPaidSplitEqually",
5
6
  TheyPaidSplitEqually = "TheyPaidSplitEqually",
@@ -64,17 +65,18 @@ export interface TransactionModel extends Model {
64
65
  splitType: SplitType;
65
66
  totalAmount: number;
66
67
  amount: number;
68
+ isOwed: boolean;
67
69
  transactionDate: Date;
68
70
  createdAt: Date;
69
71
  updatedAt: Date;
70
72
  createdBy: string;
71
73
  updatedBy: string;
72
- groupId: string | null;
73
- groupTransactionId: string | null;
74
+ groupId?: string;
75
+ groupTransactionId?: string;
74
76
  history: ChangeHistory;
75
77
  }
76
78
  export interface TransactionCreatedProps {
77
- userId: string;
79
+ userId?: string;
78
80
  recipientUserId: string;
79
81
  logicalTransactionId: string;
80
82
  description: string;
@@ -82,16 +84,17 @@ export interface TransactionCreatedProps {
82
84
  splitType: SplitType;
83
85
  totalAmount: number;
84
86
  amount: number;
87
+ isOwed: boolean;
85
88
  transactionDate: Date;
86
- groupId: string | null;
87
- groupTransactionId: string | null;
89
+ groupId?: string;
90
+ groupTransactionId?: string;
88
91
  createdAt: Date;
89
92
  createdBy: string;
90
93
  streamId: string;
91
94
  version: number;
92
95
  }
93
96
  export declare class TransactionCreated implements Event {
94
- userId: string;
97
+ userId?: string;
95
98
  recipientUserId: string;
96
99
  logicalTransactionId: string;
97
100
  description: string;
@@ -99,69 +102,34 @@ export declare class TransactionCreated implements Event {
99
102
  splitType: SplitType;
100
103
  totalAmount: number;
101
104
  amount: number;
105
+ isOwed: boolean;
102
106
  transactionDate: Date;
103
- groupId: string | null;
104
- groupTransactionId: string | null;
107
+ groupId?: string;
108
+ groupTransactionId?: string;
105
109
  createdAt: Date;
106
110
  createdBy: string;
107
111
  streamId: string;
108
112
  version: number;
109
113
  constructor(props: TransactionCreatedProps);
110
- apply(_existing: Model | null): TransactionModel;
111
- }
112
- export interface ChangeSummary {
113
- date: Date;
114
- changedBy: string;
115
- oldValue: string;
116
- newValue: string;
117
- type: TransactionChangeType;
118
- }
119
- export declare enum TransactionChangeType {
120
- TRANSACTION_DATE = "TRANSACTION_DATE",
121
- DESCRIPTION = "DESCRIPTION",
122
- TOTAL_AMOUNT = "TOTAL_AMOUNT",
123
- CURRENCY = "CURRENCY",
124
- SPLIT_TYPE = "SPLIT_TYPE",
125
- DELETED = "DELETED"
126
- }
127
- export declare enum ActivityType {
128
- CREATED = "CREATED",
129
- UPDATED = "UPDATED",
130
- DELETED = "DELETED"
131
- }
132
- export interface ActivityLog {
133
- id: string;
134
- userId: string;
135
- activityByUid: string;
136
- description: string;
137
- activityType: ActivityType;
138
- amount: number;
139
- currency: string;
140
- isOwed: boolean;
141
- date: Date;
142
- transactionModel: TransactionModel;
114
+ apply(_existing?: Model): TransactionModel;
115
+ activityLog(_existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
143
116
  }
144
117
  export interface TransactionDeletedProps {
145
- userId: string;
146
- recipientUserId: string;
147
118
  streamId: string;
148
119
  version: number;
149
120
  createdAt: Date;
150
121
  createdBy: string;
151
122
  }
152
123
  export declare class TransactionDeleted implements Event {
153
- userId: string;
154
- recipientUserId: string;
155
124
  streamId: string;
156
125
  version: number;
157
126
  createdAt: Date;
158
127
  createdBy: string;
159
128
  constructor(props: TransactionDeletedProps);
160
- apply(existing: Model | null): TransactionModel;
129
+ apply(existing?: Model): TransactionModel;
130
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
161
131
  }
162
132
  export interface DescriptionChangedProps {
163
- userId: string;
164
- recipientUserId: string;
165
133
  description: string;
166
134
  streamId: string;
167
135
  version: number;
@@ -169,19 +137,16 @@ export interface DescriptionChangedProps {
169
137
  createdBy: string;
170
138
  }
171
139
  export declare class DescriptionChanged implements Event {
172
- userId: string;
173
- recipientUserId: string;
174
140
  description: string;
175
141
  streamId: string;
176
142
  version: number;
177
143
  createdAt: Date;
178
144
  createdBy: string;
179
145
  constructor(props: DescriptionChangedProps);
180
- apply(existing: Model | null): TransactionModel;
146
+ apply(existing?: Model): TransactionModel;
147
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
181
148
  }
182
149
  export interface TotalAmountChangedProps {
183
- userId: string;
184
- recipientUserId: string;
185
150
  totalAmount: number;
186
151
  streamId: string;
187
152
  version: number;
@@ -189,14 +154,70 @@ export interface TotalAmountChangedProps {
189
154
  createdBy: string;
190
155
  }
191
156
  export declare class TotalAmountChanged implements Event {
192
- userId: string;
193
- recipientUserId: string;
194
157
  totalAmount: number;
195
158
  streamId: string;
196
159
  version: number;
197
160
  createdAt: Date;
198
161
  createdBy: string;
199
162
  constructor(props: TotalAmountChangedProps);
200
- apply(existing: Model | null): TransactionModel;
163
+ apply(existing?: Model): TransactionModel;
164
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
165
+ }
166
+ export interface SplitTypeChangedProps {
167
+ splitType: SplitType;
168
+ totalAmount: number;
169
+ amount: number;
170
+ isOwed: boolean;
171
+ streamId: string;
172
+ version: number;
173
+ createdAt: Date;
174
+ createdBy: string;
175
+ }
176
+ export declare class SplitTypeChanged implements Event {
177
+ splitType: SplitType;
178
+ totalAmount: number;
179
+ amount: number;
180
+ isOwed: boolean;
181
+ streamId: string;
182
+ version: number;
183
+ createdAt: Date;
184
+ createdBy: string;
185
+ constructor(props: SplitTypeChangedProps);
186
+ apply(existing?: Model): TransactionModel;
187
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
188
+ }
189
+ export interface CurrencyChangedProps {
190
+ currency: string;
191
+ streamId: string;
192
+ version: number;
193
+ createdAt: Date;
194
+ createdBy: string;
195
+ }
196
+ export declare class CurrencyChanged implements Event {
197
+ currency: string;
198
+ streamId: string;
199
+ version: number;
200
+ createdAt: Date;
201
+ createdBy: string;
202
+ constructor(props: CurrencyChangedProps);
203
+ apply(existing?: Model): TransactionModel;
204
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
205
+ }
206
+ export interface TransactionDateChangedProps {
207
+ transactionDate: Date;
208
+ streamId: string;
209
+ version: number;
210
+ createdAt: Date;
211
+ createdBy: string;
212
+ }
213
+ export declare class TransactionDateChanged implements Event {
214
+ transactionDate: Date;
215
+ streamId: string;
216
+ version: number;
217
+ createdAt: Date;
218
+ createdBy: string;
219
+ constructor(props: TransactionDateChangedProps);
220
+ apply(existing?: Model): TransactionModel;
221
+ activityLog(existing?: Model, actorName?: string): ActivityLogCreatedProps | undefined;
201
222
  }
202
223
  //# sourceMappingURL=TransactionEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionEvents.d.ts","sourceRoot":"","sources":["../src/TransactionEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionEvents.d.ts","sourceRoot":"","sources":["../src/TransactionEvents.ts"],"names":[],"mappings":"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"}