@wearesage/schema
Version:
A flexible schema definition and validation system for TypeScript with multi-database support
62 lines (53 loc) • 1.24 kB
text/typescript
import "reflect-metadata";
import { Entity, Id, Property, OneToOne, OneToMany } from "../..";
import { Cart } from "./Cart";
import { Order } from "./Order";
import { Review } from "./Review";
/**
* A simple "User" can have exactly one Cart (One-to-One),
* can place multiple Orders (One-to-Many),
* and can write multiple Reviews (One-to-Many).
*/
export class User {
id: string;
name: string;
email: string;
createdAt: Date;
updatedAt: Date;
/**
* One-to-one with Cart.
* The "inverse" property on Cart is "user".
*/
cart: Cart;
/**
* One user can have many orders.
* The "inverse" property on Order is "user".
*/
orders: Order[] = [];
/**
* One user can write many reviews.
* The "inverse" property on Review is "author".
*/
reviews: Review[] = [];
}