summary refs log tree commit diff
path: root/util/src/entities/ReadState.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-09 17:33:28 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-10-09 17:33:28 +0200
commitda030aaff2ca77395d0ca7a39e5ca4f7abfc23cd (patch)
tree2f47154dba040ce951f0a218cd209a504c4ed29a /util/src/entities/ReadState.ts
parent:sparkles: handleFile() now returns mime_type and size (diff)
downloadserver-da030aaff2ca77395d0ca7a39e5ca4f7abfc23cd.tar.xz
:sparkles: added read state
Diffstat (limited to 'util/src/entities/ReadState.ts')
-rw-r--r--util/src/entities/ReadState.ts13
1 files changed, 7 insertions, 6 deletions
diff --git a/util/src/entities/ReadState.ts b/util/src/entities/ReadState.ts
index 68e867a0..89480e83 100644
--- a/util/src/entities/ReadState.ts
+++ b/util/src/entities/ReadState.ts
@@ -1,4 +1,4 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
+import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm";
 import { BaseClass } from "./BaseClass";
 import { Channel } from "./Channel";
 import { Message } from "./Message";
@@ -9,8 +9,9 @@ import { User } from "./User";
 // public read receipt ≥ notification cursor ≥ private fully read marker
 
 @Entity("read_states")
+@Index(["channel_id", "user_id"], { unique: true })
 export class ReadState extends BaseClass {
-	@Column({ nullable: true })
+	@Column()
 	@RelationId((read_state: ReadState) => read_state.channel)
 	channel_id: string;
 
@@ -20,7 +21,7 @@ export class ReadState extends BaseClass {
 	})
 	channel: Channel;
 
-	@Column({ nullable: true })
+	@Column()
 	@RelationId((read_state: ReadState) => read_state.user)
 	user_id: string;
 
@@ -35,15 +36,15 @@ export class ReadState extends BaseClass {
 	last_message_id: string;
 
 	@JoinColumn({ name: "last_message_id" })
-	@ManyToOne(() => Message)
+	@ManyToOne(() => Message, { nullable: true })
 	last_message?: Message;
 
 	@Column({ nullable: true })
 	last_pin_timestamp?: Date;
 
-	@Column()
+	@Column({ nullable: true })
 	mention_count: number;
 
-	@Column()
+	@Column({ nullable: true })
 	manual: boolean;
 }