import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; import mongoose, { HydratedDocument } from 'mongoose'; import { Resident } from 'src/resident/schemas/Resident.schema'; import { Decision } from './Decision.schema'; import { ApplicationStatus, ObjectStatus } from 'src/enums/status.enum'; import { ICAInformation } from './ICAInformation.schema'; export type IndustryChangeApplicationDocument = HydratedDocument; @Schema({ timestamps: true, }) export class IndustryChangeApplication { @Prop({ required: true, ref: 'Resident', type: mongoose.Schema.Types.ObjectId, }) resident: Resident; @Prop({ required: true, type: ICAInformation, }) current: ICAInformation; @Prop({ required: true, type: ICAInformation, }) requested: ICAInformation; @Prop({ type: String, enum: ApplicationStatus, default: ApplicationStatus.IN_REVIEW, required: true, }) status: ApplicationStatus; @Prop() submittedAt: Date; @Prop({ type: Decision }) decision: Decision; @Prop() createdBy: string; @Prop() updatedBy: string; @Prop({ type: String, enum: ObjectStatus, default: ObjectStatus.CURRENT, required: true, }) objectStatus: ObjectStatus; } export const IndustryChangeApplicationSchema = SchemaFactory.createForClass( IndustryChangeApplication, );