teacher.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 urlInfo = new Schema({
  7. uri: { type: String, required: false, maxLength: 200 }, // 路径
  8. name: { type: String, required: false, maxLength: 200 }, // 名称
  9. });
  10. // 资料信息
  11. const FileInfo = new Schema({
  12. url: { type: [ urlInfo ], select: true }, // 资料路径
  13. filename: { type: String, required: false, maxLength: 200 }, // 资料名称
  14. type: { type: String, required: false, maxLength: 200 }, // 资料类别
  15. });
  16. // 教师表
  17. const TeacherSchema = {
  18. name: { type: String, required: true, maxLength: 200 }, // 教师姓名
  19. phone: { type: String, required: true, maxLength: 200 }, // 手机号
  20. idnumber: { type: String, required: true, maxLength: 200 }, // 身份证号
  21. gender: { type: String, required: false, maxLength: 200 }, // 教师性别
  22. zynumber: { type: String, required: false, maxLength: 200 }, // 职业资格证号
  23. zynumberfile: { type: String, required: false, maxLength: 200 }, // 职业资格证图片
  24. schid: { type: String, required: false, maxLength: 200 }, // 学校id
  25. schname: { type: String, required: false, maxLength: 200 }, // 学校名称
  26. email: { type: String, required: false, maxLength: 200 }, // 邮箱
  27. openid: { type: String, required: false, maxLength: 200 }, // 微信openid
  28. age: { type: String, required: false, maxLength: 200 }, // 年龄
  29. birthday: { type: String, required: false, maxLength: 200 }, // 出生年月
  30. entrydate: { type: String, required: false, maxLength: 200 }, // 入职时间
  31. job: { type: String, required: false, maxLength: 200 }, // 职务
  32. major: { type: String, required: false, maxLength: 200 }, // 专业
  33. subid: { type: String, required: false, maxLength: 200 }, // 科目id
  34. islyteacher: { type: String, required: false, maxLength: 200 }, // 是否可讲礼仪课,0-否,1-是
  35. zlscore: { type: String, required: false, maxLength: 200 }, // 资料评分
  36. msscore: { type: String, required: false, maxLength: 200 }, // 面试评分
  37. xsscore: { type: String, required: false, maxLength: 200 }, // 学生评分
  38. file: { type: [ FileInfo ], select: false }, // 资料,教案PPT视频等
  39. status: { type: String, required: false, maxLength: 200, default: '0' },
  40. // 状态:0-注册,1-确认身份,2-资料评分,3-面试评分,4-确认入库
  41. }
  42. ;
  43. const schema = new Schema(TeacherSchema, { toJSON: { virtuals: true } });
  44. schema.index({ id: 1 });
  45. schema.plugin(metaPlugin);
  46. module.exports = app => {
  47. const { mongoose } = app;
  48. return mongoose.model('Teacher', schema, 'teacher');
  49. };