diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts
index 03ff823b..ebc1c61d 100644
--- a/util/src/entities/Config.ts
+++ b/util/src/entities/Config.ts
@@ -271,7 +271,7 @@ export const DefaultConfigOptions: ConfigValue = {
regions: {
default: "fosscord",
useDefaultAsOptimal: true,
- available: [{ id: "fosscord", name: "Fosscord", endpoint: "127.0.0.1", vip: false, custom: false, deprecated: false }],
+ available: [{ id: "fosscord", name: "Fosscord", endpoint: "127.0.0.1:3004", vip: false, custom: false, deprecated: false }],
},
rabbitmq: {
host: null,
diff --git a/util/src/entities/Session.ts b/util/src/entities/Session.ts
new file mode 100644
index 00000000..fb288522
--- /dev/null
+++ b/util/src/entities/Session.ts
@@ -0,0 +1,33 @@
+import { User } from "./User";
+import { BaseClass } from "./BaseClass";
+import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
+
+//TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them
+
+
+@Entity("sessions")
+export class Session extends BaseClass {
+ @Column({ nullable: true })
+ @RelationId((session: Session) => session.user)
+ user_id: string;
+
+ @JoinColumn({ name: "user_id" })
+ @ManyToOne(() => User)
+ user: User;
+
+ //TODO check, should be 32 char long hex string
+ @Column({ nullable: false })
+ session_id: string;
+
+ activities: []; //TODO
+
+ @Column({ type: "simple-json", select: false })
+ client_info: {
+ client: string,
+ os: string,
+ version: number
+ }
+
+ @Column({ nullable: false })
+ status: string; //TODO enum
+}
diff --git a/util/src/entities/VoiceState.ts b/util/src/entities/VoiceState.ts
index c5040cf1..7975273b 100644
--- a/util/src/entities/VoiceState.ts
+++ b/util/src/entities/VoiceState.ts
@@ -3,7 +3,9 @@ import { BaseClass } from "./BaseClass";
import { Channel } from "./Channel";
import { Guild } from "./Guild";
import { User } from "./User";
+import {Member} from "./Member";
+//https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex
@Entity("voice_states")
export class VoiceState extends BaseClass {
@Column({ nullable: true })
@@ -30,9 +32,16 @@ export class VoiceState extends BaseClass {
@ManyToOne(() => User)
user: User;
+ @JoinColumn({ name: "user_id" })
+ @ManyToOne(() => Member)
+ member: Member;
+
@Column()
session_id: string;
+ @Column({ nullable: true })
+ token: string;
+
@Column()
deaf: boolean;
@@ -53,4 +62,7 @@ export class VoiceState extends BaseClass {
@Column()
suppress: boolean; // whether this user is muted by the current user
+
+ @Column({ nullable: true , default: null})
+ request_to_speak_timestamp?: Date
}
diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts
index aa37ae2e..7b1c9750 100644
--- a/util/src/entities/index.ts
+++ b/util/src/entities/index.ts
@@ -16,6 +16,7 @@ export * from "./ReadState";
export * from "./Recipient";
export * from "./Relationship";
export * from "./Role";
+export * from "./Session";
export * from "./Sticker";
export * from "./Team";
export * from "./TeamMember";
|