89 lines
2.3 KiB
TypeScript
89 lines
2.3 KiB
TypeScript
import { prop, getModelForClass } from "@typegoose/typegoose"
|
|
|
|
/* TODO
|
|
* Comments
|
|
* Further attributes for class
|
|
* */
|
|
|
|
export interface SharedMemberAttributes {
|
|
discordID: string | undefined;
|
|
}
|
|
|
|
export type MemberAdditionalAcknowledgement =
|
|
"Chair of the Board of Governors" |
|
|
"Vice Chair of the Board of Governors" |
|
|
"Voting Seat Member of the Board of Governors" |
|
|
string;
|
|
|
|
export const MemberGuildRoleIDMap = {
|
|
// Chair/Vice Chair of the Board of Governors
|
|
CHAIR_OR_VICE_OF_BOARD: "608394038466445320",
|
|
// Management
|
|
MANAGEMENT: "1077646568091570236",
|
|
// Director of Operations
|
|
DIRECTOR_OF_OPERATIONS: "1077647072163020840",
|
|
// Director of Engineering
|
|
DIRECTOR_OF_ENGINEERING: "1077646956890951690",
|
|
// Board of Governors
|
|
BOARD_OF_GOVERNORS: "662163685439045632",
|
|
// Project Manager
|
|
PROJECT_MANAGER: "1077647157928132711",
|
|
// Services Manager
|
|
SERVICES_MANAGER: "1077647467056742482",
|
|
// Staff
|
|
STAFF: "446104438969466890",
|
|
// Technician
|
|
TECHNICIAN: "701454780828221450",
|
|
// Moderator
|
|
MODERATOR: "455972169449734144",
|
|
// Core Team
|
|
CORE_TEAM: "453689940140883988",
|
|
// Intern (Training)
|
|
INTERN: "701481967149121627",
|
|
|
|
}
|
|
|
|
// enum for the used programming languages in whois information
|
|
export enum MemberUsedLanguages {
|
|
ASM = "lang-asm",
|
|
CFAM = "lang-cfam",
|
|
CSHARP = "lang-csharp",
|
|
GO = "lang-go",
|
|
JAVA = "lang-java",
|
|
JS = "lang-js",
|
|
KT = "lang-kt",
|
|
PY = "lang-py",
|
|
RB = "lang-rb",
|
|
RS = "lang-rs",
|
|
SWIFT = "lang-swift",
|
|
TS = "lang-ts"
|
|
}
|
|
|
|
// enum for the used operating systems in the whois information
|
|
export enum MemberUsedOperatingSystems {
|
|
ARCH = "os-arch",
|
|
DEB = "os-deb",
|
|
CENT = "os-cent",
|
|
FEDORA = "os-fedora",
|
|
MDARWIN = "os-mdarwin",
|
|
MANJARO = "os-manjaro",
|
|
REDHAT = "os-redhat",
|
|
UBUNTU = "os-ubuntu",
|
|
WIN = "os-win"
|
|
}
|
|
export default class Member implements SharedMemberAttributes {
|
|
@prop({ required: true, unique: true })
|
|
public discordID: string | undefined;
|
|
|
|
@prop()
|
|
public usedOperatingSystems: MemberUsedOperatingSystems[] | undefined;
|
|
|
|
@prop()
|
|
public usedLanguages: MemberUsedLanguages[] | undefined;
|
|
|
|
@prop()
|
|
public additionalAcknowledgement: MemberAdditionalAcknowledgement[] | undefined;
|
|
}
|
|
|
|
export const MemberModel = getModelForClass(Member);
|