UNPKG

@wearesage/schema

Version:

A flexible schema definition and validation system for TypeScript with multi-database support

54 lines (43 loc) 881 B
import "reflect-metadata"; import { Entity, Id, Property, ManyToOne, ManyToMany, OneToMany } from "../.."; import { User } from "./User"; import { Post } from "./Post"; @Entity() export class Group { @Id() id: string; @Property({ required: true }) name: string; @Property() description: string; @Property() imageUrl: string; @Property() isPrivate: boolean = false; @Property() createdAt: Date; @ManyToOne({ target: () => User, inverse: "ownedGroups", name: "OWNED_BY", }) owner: User; @ManyToMany({ target: () => User, inverse: "groups", name: "HAS_MEMBER", }) members: User[] = []; @OneToMany({ target: () => Post, inverse: "group", name: "HAS_POST", }) posts: Post[] = []; @OneToMany({ target: () => Event, inverse: "group", name: "HOSTS_EVENT", }) events: Event[] = []; }