@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
34 lines (28 loc) • 706 B
text/typescript
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.
*/
()
export class Group {
()
id: string;
({ required: true, unique: true })
name: string;
()
description: string;
({ default: () => new Date() })
createdAt: Date;
/**
* A group can have many memberships,
* each membership links a user to this group.
*/
({
target: () => GroupMembership,
inverse: "group",
name: "HAS_MEMBERSHIP",
})
memberships: GroupMembership[] = [];
}