UNPKG

@wearesage/schema

Version:

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

34 lines (28 loc) 719 B
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. */ @Entity() export class Resource { @Id() id: string; @Property({ required: true }) name: string; // e.g. "Project Alpha" @Property() resourceType: string; // e.g. "PROJECT", "FILE", "DOCUMENT" @Property() createdAt: Date; /** * A resource may be owned by a single user. */ @ManyToOne({ target: () => User, inverse: "ownedResources", name: "OWNED_BY_USER", }) owner: User; }