@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
34 lines (28 loc) • 719 B
text/typescript
import "reflect-metadata";
import { Entity, Id, Property, ManyToOne } from "../..";
import { User } from "./User";
/**
* A Resource is something that needs access control—like a file, a project, etc.
* Each resource may have an owner (user),
* or might be "public" if the system allows it.
*/
()
export class Resource {
()
id: string;
({ required: true })
name: string; // e.g. "Project Alpha"
()
resourceType: string; // e.g. "PROJECT", "FILE", "DOCUMENT"
()
createdAt: Date;
/**
* A resource may be owned by a single user.
*/
({
target: () => User,
inverse: "ownedResources",
name: "OWNED_BY_USER",
})
owner: User;
}