forked from engineering/crv2
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
|
import { prop, getModelForClass } from "@typegoose/typegoose";
|
||
|
import Member from "./Member";
|
||
|
|
||
|
/* TODO
|
||
|
* Comments
|
||
|
* Further attributes for class
|
||
|
* */
|
||
|
|
||
|
export type PartnerTitle =
|
||
|
"Director of Engineering" |
|
||
|
"Director of Operations" |
|
||
|
"Deputy Director of Engineering" |
|
||
|
"Deputy Director of Operations" |
|
||
|
"Services Manager" |
|
||
|
"Project Manager" |
|
||
|
"Engineering Core Partner" |
|
||
|
"Operations Core Partner" |
|
||
|
"Community Moderator" |
|
||
|
"Technician" |
|
||
|
string;
|
||
|
|
||
|
|
||
|
export enum PartnerDepartment {
|
||
|
INDEPENDENT_AGENCY,
|
||
|
ENGINEERING, // Department of Engineering
|
||
|
OPERATIONS // Department of Operations
|
||
|
}
|
||
|
|
||
|
export enum PartnerRoleType {
|
||
|
MANAGERIAL,
|
||
|
NONMANAGERIAL,
|
||
|
}
|
||
|
|
||
|
export enum PartnerCommissionType {
|
||
|
TENURE,
|
||
|
PROVISIONAL,
|
||
|
CONTRACTUAL,
|
||
|
ACTING,
|
||
|
INTERIM,
|
||
|
TRIAL,
|
||
|
}
|
||
|
|
||
|
export default class Partner extends Member {
|
||
|
@prop({ required: true })
|
||
|
public roleType: PartnerRoleType | undefined;
|
||
|
|
||
|
@prop({ required: true })
|
||
|
public commissionType: PartnerCommissionType | undefined;
|
||
|
|
||
|
@prop({ required: true })
|
||
|
public department: PartnerDepartment | undefined;
|
||
|
|
||
|
@prop({ required: true })
|
||
|
public title: PartnerTitle | "Partner" | undefined;
|
||
|
|
||
|
@prop()
|
||
|
public directReport: Partner | string | undefined;
|
||
|
}
|