53 lines
1006 B
TypeScript
53 lines
1006 B
TypeScript
import {
|
|
BaseEntity,
|
|
Column,
|
|
Entity,
|
|
OneToMany,
|
|
PrimaryGeneratedColumn,
|
|
} from "typeorm";
|
|
import { type Review } from "./Review";
|
|
import { type Saved } from "./Saved";
|
|
import type { Hazard } from "./Hazard";
|
|
import type { Store } from "./Stores";
|
|
import type { Follow } from "./Follow";
|
|
|
|
@Entity()
|
|
export class User extends BaseEntity {
|
|
@PrimaryGeneratedColumn("uuid")
|
|
id: string;
|
|
|
|
@Column()
|
|
username: string;
|
|
|
|
@OneToMany("Review", (r: Review) => r.user)
|
|
reviews: Review[];
|
|
|
|
/**
|
|
* @deprecated Use stores instead
|
|
*/
|
|
@OneToMany("Saved", (s: Saved) => s.user)
|
|
saved: Saved[];
|
|
|
|
@OneToMany("Store", (s: Store) => s.user)
|
|
stores: Store[];
|
|
|
|
@OneToMany("Hazard", (h: Hazard) => h.user)
|
|
hazards: Hazard[];
|
|
|
|
@OneToMany("Follow", (f: Follow) => f.follower)
|
|
following: Promise<Follow[]>;
|
|
|
|
@OneToMany("Follow", (f: Follow) => f.following)
|
|
followers: Promise<Follow[]>;
|
|
|
|
@Column({
|
|
default: () => "NOW()",
|
|
})
|
|
updated_at: Date;
|
|
|
|
@Column({
|
|
default: () => "NOW()",
|
|
})
|
|
created_at: Date;
|
|
}
|