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
text/typescript
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
};