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; // 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);