crra/database/CommunityReport.ts

47 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-10-25 16:57:33 -04:00
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 {
2024-10-25 16:57:33 -04:00
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
2024-03-25 15:12:11 -04:00
}
export interface AddtlScoreData {
2024-10-25 16:57:33 -04:00
activity: number;
roles: number;
moderation: number;
cloudServices: number;
misc: number;
}
/* TODO
2024-10-25 16:57:33 -04:00
* Comments
* Further attributes for class
* */
export default class CommunityReport {
2024-10-25 16:57:33 -04:00
@prop({ required: true, index: true, ref: () => Member })
// the member on which this report was generated for
public member: Ref<Member> | undefined;
2024-10-25 16:57:33 -04:00
@prop({ required: true })
// the date in which this report was generated on
public date: Date | undefined;
2024-10-25 16:57:33 -04:00
@prop({ required: true })
// the CommScore of the member specified
public score: number | undefined;
2024-10-25 16:57:33 -04:00
@prop({ required: true })
// the method in which this report was generated under
public generationMethod: GenerationMethod | undefined;
2024-03-25 15:12:11 -04:00
2024-10-25 16:57:33 -04:00
@prop({ required: true })
public additionalScoreData: AddtlScoreData | undefined;
}