summary refs log tree commit diff
path: root/util/src/entities/ReadState.ts
diff options
context:
space:
mode:
Diffstat (limited to 'util/src/entities/ReadState.ts')
-rw-r--r--util/src/entities/ReadState.ts55
1 files changed, 0 insertions, 55 deletions
diff --git a/util/src/entities/ReadState.ts b/util/src/entities/ReadState.ts
deleted file mode 100644
index b915573b..00000000
--- a/util/src/entities/ReadState.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Message } from "./Message";
-import { User } from "./User";
-
-// for read receipts
-// notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable
-// 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()
-	@RelationId((read_state: ReadState) => read_state.channel)
-	channel_id: string;
-
-	@JoinColumn({ name: "channel_id" })
-	@ManyToOne(() => Channel, {
-		onDelete: "CASCADE",
-	})
-	channel: Channel;
-
-	@Column()
-	@RelationId((read_state: ReadState) => read_state.user)
-	user_id: string;
-
-	@JoinColumn({ name: "user_id" })
-	@ManyToOne(() => User, {
-		onDelete: "CASCADE",
-	})
-	user: User;
-
-	// fully read marker
-	@Column({ nullable: true })
-	last_message_id: string; 
-	
-	// public read receipt
-	@Column({ nullable: true })
-	public_ack: string;
-
-	// notification cursor / private read receipt
-	@Column({ nullable: true })
-	notifications_cursor: string;
-
-	@Column({ nullable: true })
-	last_pin_timestamp?: Date;
-
-	@Column({ nullable: true })
-	mention_count: number;
-
-	// @Column({ nullable: true })
-	// TODO: derive this from (last_message_id=notifications_cursor=public_ack)=true
-	manual: boolean;
-}