summary refs log tree commit diff
path: root/util
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-23 20:52:48 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-23 20:52:48 +1000
commitc73dbe9c5bffea1960cd1a113e62e6c69def386c (patch)
treecd51bb97139b348caf49c9b42301d2fb716a7a31 /util
parentchore: fix package.json scripts (diff)
downloadserver-c73dbe9c5bffea1960cd1a113e62e6c69def386c.tar.xz
Moved user notes into separate table
Diffstat (limited to 'util')
-rw-r--r--util/src/entities/Note.ts18
-rw-r--r--util/src/entities/User.ts4
-rw-r--r--util/src/entities/index.ts3
3 files changed, 21 insertions, 4 deletions
diff --git a/util/src/entities/Note.ts b/util/src/entities/Note.ts
new file mode 100644
index 00000000..36017c5e
--- /dev/null
+++ b/util/src/entities/Note.ts
@@ -0,0 +1,18 @@
+import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm";
+import { BaseClass } from "./BaseClass";
+import { User } from "./User";
+
+@Entity("notes")
+@Unique(["owner", "target"])
+export class Note extends BaseClass {
+	@JoinColumn({ name: "owner_id" })
+	@ManyToOne(() => User, { onDelete: "CASCADE" })
+	owner: User;
+
+	@JoinColumn({ name: "target_id" })
+	@ManyToOne(() => User, { onDelete: "CASCADE" })
+	target: User;
+
+	@Column()
+	content: string;
+}
\ No newline at end of file
diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts
index 9b1c494e..8deb7ed5 100644
--- a/util/src/entities/User.ts
+++ b/util/src/entities/User.ts
@@ -5,6 +5,7 @@ import { Relationship } from "./Relationship";
 import { ConnectedAccount } from "./ConnectedAccount";
 import { Config, FieldErrors, Snowflake, trimSpecial } from "..";
 import { Member, Session } from ".";
+import { Note } from "./Note";
 
 export enum PublicUserEnum {
 	username,
@@ -168,9 +169,6 @@ export class User extends BaseClass {
 	@Column({ type: "simple-json", select: false })
 	extended_settings: string;
 
-	@Column({ type: "simple-json" })
-	notes: { [key: string]: string };	//key is ID of user
-
 	toPublicUser() {
 		const user: any = {};
 		PublicUserProjection.forEach((x) => {
diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts
index f023d5a6..cb087136 100644
--- a/util/src/entities/index.ts
+++ b/util/src/entities/index.ts
@@ -27,4 +27,5 @@ export * from "./Template";
 export * from "./User";
 export * from "./VoiceState";
 export * from "./Webhook";
-export * from "./ClientRelease";
\ No newline at end of file
+export * from "./ClientRelease";
+export * from "./Note";
\ No newline at end of file