@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
34 lines (29 loc) • 772 B
text/typescript
import "reflect-metadata";
import { Entity, Id, Property, ManyToOne } from "../..";
import { User } from "./User";
import { Group } from "./Group";
/**
* A pivot (linking) entity to connect a User to a Group.
* This is often more flexible than a simple ManyToMany in some DB abstractions,
* because you can store extra fields on the membership itself
* (like "joinedAt", "roleInGroup", etc.).
*/
()
export class GroupMembership {
()
id: string;
({ default: () => new Date() })
joinedAt: Date;
({
target: () => User,
inverse: "memberships",
name: "MEMBERSHIP_FOR_USER",
})
user: User;
({
target: () => Group,
inverse: "memberships",
name: "MEMBERSHIP_IN_GROUP",
})
group: Group;
}