aboutsummaryrefslogtreecommitdiffstats
path: root/src/session/entity
diff options
context:
space:
mode:
Diffstat (limited to 'src/session/entity')
-rw-r--r--src/session/entity/session.entity.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/session/entity/session.entity.ts b/src/session/entity/session.entity.ts
new file mode 100644
index 0000000..a4f13ae
--- /dev/null
+++ b/src/session/entity/session.entity.ts
@@ -0,0 +1,30 @@
+import { FileMetadata } from '../../file/entity/file.entity';
+import { Entity, Column, BeforeInsert, CreateDateColumn, PrimaryGeneratedColumn, Index, OneToMany } from 'typeorm';
+import { nanoid } from 'nanoid';
+
+@Entity()
+export class Session {
+ @PrimaryGeneratedColumn()
+ id: number;
+
+ @Index('sessiontoken-idx')
+ @Column({ unique: true })
+ token: string;
+
+ @CreateDateColumn()
+ creationDate: Date;
+
+ @Column()
+ validUntil: Date;
+
+ @Column({ default: false })
+ used: boolean;
+
+ @OneToMany(() => FileMetadata, (file) => file.session)
+ files: FileMetadata[];
+
+ @BeforeInsert()
+ private beforeInsert() {
+ this.token = nanoid();
+ }
+}