2024-03-25 14:26:25 -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 {
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 {
2024-03-25 14:26:25 -04:00
activity : number ;
roles : number ;
moderation : number ;
cloudServices : number ;
misc : number ;
}
/ * T O D O
* 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
2024-03-25 14:26:25 -04:00
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 14:26:25 -04:00
2024-03-25 15:12:11 -04:00
@prop ( { required : true } )
// the CommScore of the member specified
2024-03-25 14:26:25 -04:00
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 } )
2024-03-25 14:26:25 -04:00
public additionalScoreData : AddtlScoreData | undefined ;
}