crv2/database/CommunityReport.ts

43 lines
1.5 KiB
TypeScript
Raw Normal View History

import { prop, getModelForClass, Ref } from "@typegoose/typegoose"
import Member, { MemberAdditionalAcknowledgement, MemberUsedLanguages, MemberUsedOperatingSystems } from "./Member";
2024-03-25 15:12:11 -04:00
export enum GenerationMethod {
TIMER_INTERNAL, // generated by the internal cron-job timer automatically
INQUIRY_INTERNAL, // internal inquiry generated internally directly through the system. user checks their own inquiry, hard inquiry is performed by a staff member, etc.
INQUIRY_EXTERNAL, // external inquiry generated externally through the system via an external authorized request, such as via EDS
}
export interface AddtlScoreData {
activity: number;
roles: number;
moderation: number;
cloudServices: number;
misc: number;
}
/* TODO
* Comments
* Further attributes for class
* */
export default class CommunityReport {
@prop({ required: true, index: true, ref: () => Member })
2024-03-25 15:12:11 -04:00
// the member on which this report was generated for
public member: Ref<Member> | undefined;
2024-03-25 15:12:11 -04:00
@prop({ required: true })
// the date in which this report was generated on
public date: Date | undefined;
2024-03-25 15:12:11 -04:00
@prop({ required: true })
// the CommScore of the member specified
public score: number | undefined;
2024-03-25 15:12:11 -04:00
@prop({ required: true })
// the method in which this report was generated under
public generationMethod: GenerationMethod | undefined;
@prop({ required: true })
public additionalScoreData: AddtlScoreData | undefined;
}