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 14:26:25 -04:00
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 ;
2024-03-25 14:26:25 -04:00
}
/ * T O D O
2024-10-25 16:57:33 -04:00
* Comments
* Further attributes for class
* * /
2024-03-25 14:26:25 -04:00
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-03-25 14:26:25 -04:00
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-03-25 14:26:25 -04:00
2024-10-25 16:57:33 -04:00
@prop ( { required : true } )
// the CommScore of the member specified
public score : number | undefined ;
2024-03-25 14:26:25 -04:00
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 ;
2024-03-25 14:26:25 -04:00
}