Partypack/Server/Source/Schemas/User.ts
2024-01-28 16:54:32 +01:00

32 lines
914 B
TypeScript

import { BaseEntity, Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryColumn } from "typeorm";
import { Song } from "./Song";
import { Rating } from "./Rating";
export enum UserPermissions { // increments of 100 in case we want to add permissions inbetween without fucking up all instances
User = 100,
VerifiedUser = 200,
Moderator = 300,
Administrator = 400
}
@Entity()
export class User extends BaseEntity {
@PrimaryColumn()
ID: string;
@Column({ type: "simple-json" })
Library: { SongID: string, Overriding: string }[];
@Column({ default: UserPermissions.User })
PermissionLevel: UserPermissions;
@OneToMany(() => Rating, R => R.Author)
Ratings: Rating[];
@OneToMany(() => Song, R => R.Author)
CreatedTracks: Song[];
@ManyToMany(() => Song, { eager: true })
@JoinTable()
BookmarkedSongs: Song[];
}