37 lines
760 B
TypeScript
37 lines
760 B
TypeScript
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
import { Document } from 'mongoose';
|
|
import { Field, FieldSchema } from './field.schema';
|
|
|
|
export enum Status {
|
|
DRAFT = 'draft',
|
|
SAVED = 'saved',
|
|
}
|
|
|
|
export type FormDocument = Form & Document;
|
|
@Schema({ timestamps: true })
|
|
export class Form {
|
|
@Prop({ required: true, unique: true })
|
|
id!: string;
|
|
|
|
@Prop({ required: true })
|
|
name!: string;
|
|
|
|
@Prop({ type: [FieldSchema], required: false })
|
|
fields?: Field[];
|
|
|
|
@Prop({
|
|
type: String,
|
|
enum: Status,
|
|
default: Status.DRAFT,
|
|
})
|
|
status!: Status;
|
|
|
|
@Prop({ default: false })
|
|
isDeleted?: boolean;
|
|
|
|
@Prop({ type: Date, default: null })
|
|
deletedAt?: Date;
|
|
}
|
|
|
|
export const FormSchema = SchemaFactory.createForClass(Form);
|