2019-08-04 00:48:39 +02:00

84 lines
1.1 KiB
TypeScript

import {arrayProp, prop} from "typegoose"
import {LogicJump} from "./logic.jump"
import {RatingField} from "./rating.field"
import {FieldOption} from "./field.option"
import {Exclude} from "class-transformer"
export class Field {
@Exclude()
readonly _id: string;
@prop({
default: false
})
isSubmission: boolean;
@prop()
submissionId: string;
@prop({
trim: true
})
title: string;
@prop({
default: ''
})
description: string;
@prop()
logicJump: LogicJump;
@prop()
ratingOptions: RatingField;
@arrayProp({
items: FieldOption
})
fieldOptions: FieldOption[];
@prop({
default: true
})
required: boolean;
@prop({
default: false
})
disabled: boolean;
@prop({
default: false
})
deletePreserved: boolean;
@arrayProp({
items: String
})
validFieldTypes: boolean;
@prop({
enum: [
'textfield',
'date',
'email',
'legal',
'textarea',
'link',
'statement',
'dropdown',
'rating',
'radio',
'hidden',
'yes_no',
'number'
]
})
fieldType: string;
@prop({
default: ''
})
fieldValue: any;
}