UNPKG

pure-orm

Version:

A SQL Toolkit based on pure business objects passed to and from stateful data access objects

60 lines (53 loc) 1.26 kB
import { IModel, ICollection, IColumns } from '../../src/index'; import { Person } from './person'; import { Employer } from './employer'; export const tableName: string = 'job'; export const columns: IColumns = [ 'id', { column: 'person_id', references: Person }, { column: 'employer_id', references: Employer }, 'start_date', 'end_date' ]; interface IJobProps { id: number; personId: number; person?: Person; employerId: number; employer?: Employer; startDate: Date; endDate: Date; } export class Job implements IModel { id: number; personId: number; person?: Person; employerId: number; employer?: Employer; startDate: Date; endDate: Date; constructor(props: IJobProps) { this.id = props.id; this.personId = props.personId; this.person = props.person; this.employerId = props.employerId; this.employer = props.employer; this.startDate = props.startDate; this.endDate = props.endDate; } // any business methods... } export class Jobs implements ICollection<Job> { models: Array<Job>; constructor({ models }: any) { this.models = models; return this; } // any business methods... } export const jobEntity = { tableName, columns, Model: Job, Collection: Jobs };