teacher.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  4. const { Secret } = require('naf-framework-mongoose/lib/model/schema');
  5. // 资料信息
  6. const FileInfo = new Schema({
  7. url: { type: String, required: false, maxLength: 200 }, // 资料地址
  8. file_name: { type: String, required: false, maxLength: 200 }, // 资料名称
  9. type: { type: String, required: false, maxLength: 200 }, // 资料类别
  10. });
  11. // 教师表
  12. const TeacherSchema = {
  13. name: { type: String, required: true, maxLength: 200 }, // 教师姓名
  14. password: { type: Secret, required: true, select: false, maxLength: 200 }, // 密码
  15. phone: { type: String, required: true, maxLength: 200 }, // 手机号
  16. id_number: { type: String, required: true, maxLength: 200 }, // 身份证号
  17. gender: { type: String, required: false, maxLength: 200 }, // 教师性别
  18. profession_number: { type: String, required: false, maxLength: 200 }, // 职业资格证号
  19. profession_number_file: { type: String, required: false, maxLength: 200 }, // 职业资格证图片
  20. school_code: { type: String, required: false, maxLength: 200 }, // 学校编码
  21. school_name: { type: String, required: false, maxLength: 200 }, // 学校名称
  22. email: { type: String, required: false, maxLength: 200 }, // 邮箱
  23. openid: { type: String, required: false, maxLength: 200 }, // 微信openid
  24. age: { type: String, required: false, maxLength: 200 }, // 年龄
  25. birthday: { type: String, required: false, maxLength: 200 }, // 出生年月
  26. entry_time: { type: String, required: false, maxLength: 200 }, // 入职时间
  27. job: { type: String, required: false, maxLength: 200 }, // 职务
  28. major: { type: String, required: false, maxLength: 200 }, // 专业
  29. subid: { type: String, required: false, maxLength: 200 }, // 科目id
  30. is_etiquette_teacher: { type: String, required: false, maxLength: 200 }, // 是否可讲礼仪课,0-否,1-是
  31. file_score: { type: String, required: false, maxLength: 200 }, // 资料评分
  32. interview_score: { type: String, required: false, maxLength: 200 }, // 面试评分
  33. student_score: { type: String, required: false, maxLength: 200 }, // 学生评分
  34. file: { type: [ FileInfo ], select: false }, // 资料,教案PPT视频等
  35. status: { type: String, required: false, maxLength: 200 },
  36. // 状态:0-注册,1-确认身份,2-资料评分,3-面试评分,4-确认入库
  37. }
  38. ;
  39. const schema = new Schema(TeacherSchema, { toJSON: { virtuals: true } });
  40. schema.index({ id: 1 });
  41. schema.plugin(metaPlugin);
  42. module.exports = app => {
  43. const { mongoose } = app;
  44. return mongoose.model('Teacher', schema, 'teacher');
  45. };