proactive-questionnaire-answer.ts 1.2 KB

12345678910111213141516171819202122232425262728
  1. import type { Model } from 'mongoose';
  2. import { Schema } from 'mongoose';
  3. import { getOrCreateModel } from '~/server/util/mongoose-utils';
  4. import type { IProactiveQuestionnaireAnswer } from '../../interfaces/proactive-questionnaire-answer';
  5. import { growiInfoSchema } from './schema/growi-info';
  6. import { userInfoSchema } from './schema/user-info';
  7. interface ProactiveQuestionnaireAnswerDocument extends IProactiveQuestionnaireAnswer, Document {}
  8. type ProactiveQuestionnaireAnswerModel = Model<ProactiveQuestionnaireAnswerDocument>
  9. export const proactiveQuestionnaireAnswerSchema = new Schema<ProactiveQuestionnaireAnswerDocument>({
  10. satisfaction: { type: Number, required: true },
  11. lengthOfExperience: { type: String },
  12. position: { type: String },
  13. occupation: { type: String },
  14. commentText: { type: String, required: true },
  15. growiInfo: { type: growiInfoSchema, required: true },
  16. userInfo: { type: userInfoSchema, required: true },
  17. answeredAt: { type: Date },
  18. }, { timestamps: true });
  19. export default getOrCreateModel<ProactiveQuestionnaireAnswerDocument, ProactiveQuestionnaireAnswerModel>(
  20. 'ProactiveQuestionnaireAnswer', proactiveQuestionnaireAnswerSchema,
  21. );