bex-twn/src/industry-change-application/schemas/IndustryChangeApplication.s...

67 lines
1.3 KiB
TypeScript

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { HydratedDocument } from 'mongoose';
import { Decision } from './Decision.schema';
import { ApplicationStatus, ObjectStatus } from 'src/enums/status.enum';
import { ICAInformation } from './ICAInformation.schema';
export type IndustryChangeApplicationDocument =
HydratedDocument<IndustryChangeApplication>;
@Schema({
timestamps: true,
})
export class IndustryChangeApplication {
@Prop({
required: true,
})
residentSub: string;
@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;
createdAt: Date;
updatedAt: Date;
}
export const IndustryChangeApplicationSchema = SchemaFactory.createForClass(
IndustryChangeApplication,
);