@social-mail/social-mail-web-server 1.5.97 → 1.5.98

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-web-server",
3
- "version": "1.5.97",
3
+ "version": "1.5.98",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -133,6 +133,9 @@ export class Email {
133
133
  @Column({ dataType: "Int", default: () => 0})
134
134
  public viewCount: number;
135
135
 
136
+ @Column({ dataType: "Int", default: () => 0})
137
+ public engagementCount: number;
138
+
136
139
  @Column({ dataType: "BigInt", nullable: true })
137
140
  @RelateTo({
138
141
  type: () => EmailLog,
@@ -12,7 +12,11 @@ export default class EmailEngagement {
12
12
  @Column({ dataType: "BigInt", key: true, order: 1})
13
13
  @RelateTo(Email, {
14
14
  property: (x) => x.email,
15
- inverseProperty: (x) => x.engagements
15
+ inverseProperty: (x) => x.engagements,
16
+ foreignKeyConstraint: {
17
+ name: "FC_Email_Engagements",
18
+ cascade: "delete"
19
+ }
16
20
  })
17
21
  public emailID: number;
18
22
 
@@ -10,7 +10,11 @@ export default class EmailTag {
10
10
  @Column({key: true, dataType: "BigInt", order : 1})
11
11
  @RelateTo(Email, {
12
12
  property: (et) => et.email,
13
- inverseProperty: (e) => e.emailTags
13
+ inverseProperty: (e) => e.emailTags,
14
+ foreignKeyConstraint: {
15
+ name: "FC_Email_Tags",
16
+ cascade: "delete"
17
+ }
14
18
  })
15
19
  public emailID: number;
16
20
 
@@ -180,6 +180,9 @@ export default class EmailEvents extends AuthenticatedEvents<Email> {
180
180
  await this.db.appFiles.asQuery()
181
181
  .delete(entity, (p) => (x) => x.emailID === p.emailID && x.parentID === null);
182
182
 
183
+ await this.db.emailEngagements.asQuery()
184
+ .delete(entity, (p) => (x) => x.emailID === p.emailID);
185
+
183
186
  await this.db.mailboxEmails
184
187
  .asQuery()
185
188
  .delete(entity, (p) => (x) => x.emailID === p.emailID);
@@ -188,7 +188,10 @@ export default class EngagementService {
188
188
  const ea = { emailID, engagement };
189
189
 
190
190
  await this.db.emails.where(ea, (p) => (x) => x.emailID === p.emailID)
191
- .update(void 0, (p) => (x) => ({ dateUpdated: Sql.date.now()}));
191
+ .update(void 0, (p) => (x) => ({
192
+ engagementCount: x.engagementCount + 1,
193
+ dateUpdated: Sql.date.now()
194
+ }));
192
195
 
193
196
  const r = await this.db.emailEngagements.where(ea, (p) => (x) => x.emailID === p.emailID && x.engagement === p.engagement)
194
197
  .update(void 0, (p) => (x) => ({ count: x.count + 1}));