UNPKG

@wearesage/schema

Version:

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

34 lines (28 loc) 706 B
import "reflect-metadata"; import { Entity, Id, Property, OneToMany } from "../.."; import { GroupMembership } from "./GroupMembership"; /** * A Group can have many members, but we store them * via the "GroupMembership" pivot entity. */ @Entity() export class Group { @Id() id: string; @Property({ required: true, unique: true }) name: string; @Property() description: string; @Property({ default: () => new Date() }) createdAt: Date; /** * A group can have many memberships, * each membership links a user to this group. */ @OneToMany({ target: () => GroupMembership, inverse: "group", name: "HAS_MEMBERSHIP", }) memberships: GroupMembership[] = []; }