UNPKG

@wearesage/schema

Version:

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

62 lines (50 loc) 1.06 kB
import "reflect-metadata"; import { Entity, Id, Property, OneToMany, ManyToOne, ManyToMany } from "../.."; import { TaskBucket } from "./TaskBucket"; import { User } from "./User"; import { Label } from "./Label"; @Entity() export class Task { @Id() id: string; @Property({ required: true }) title: string; @Property() description: string; @Property() dueDate: Date; @Property() completed: boolean = false; @Property() createdAt: Date; @ManyToOne({ target: () => TaskBucket, inverse: "tasks", name: "BELONGS_TO_BUCKET", }) bucket: TaskBucket; @ManyToOne({ target: () => User, inverse: "tasks", name: "ASSIGNED_TO", }) assignee: User; @ManyToOne({ target: () => User, inverse: "createdTasks", name: "CREATED_BY", }) creator: User; @OneToMany({ target: () => Comment, inverse: "task", name: "HAS_COMMENT", }) comments: Comment[] = []; @ManyToMany({ target: () => Label, inverse: "tasks", name: "HAS_LABEL", }) labels: Label[] = []; }