mission.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 'use strict';
  2. const moment = require('moment');
  3. const Schema = require('mongoose').Schema;
  4. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  5. // params不做限制,方便扩展,Object就行
  6. const params = {
  7. project: { type: String, required: true }, // 项目名称(需要设置好,然后找对应路由前置)
  8. router: { type: String, required: true }, // 要执行的路由
  9. service: { type: String, required: true }, // 服务
  10. method: { type: String, required: true }, // 方法, get,post,delete...
  11. type: { type: String, required: false }, // 类型,需要怎么处理;例如,文件,需要下载
  12. body: { type: [ Object, Array ] },
  13. query: { type: Object },
  14. };
  15. const Mission = {
  16. title: { type: String, required: true, maxLength: 200 }, // 标题
  17. create_time: {
  18. type: String,
  19. required: false,
  20. maxLength: 200,
  21. default: moment().format('YYYY-MM-DD HH:SS:mm'),
  22. }, // 创建时间
  23. params: { type: Object, required: false },
  24. status: { type: String, maxLength: 200, default: '0' }, // 状态:0=>未开始;1=>正在进行;2=>已完成;3=>失败
  25. dot: { type: Boolean, default: true }, // 需要提醒
  26. progress: { type: String, required: false, maxLength: 200 },
  27. user: { type: String, required: false, maxLength: 200 }, // 用户,监听指定用户用,没有的话,mq就监听项目
  28. uri: { type: String, required: false }, // 文件/图片等需要地址的地方就放这
  29. tenant: { type: String, required: true }, // 所属项目
  30. remark: { type: String },
  31. };
  32. const schema = new Schema(Mission, { toJSON: { virtuals: true } });
  33. schema.index({ id: 1 });
  34. schema.index({ user: 1 });
  35. schema.plugin(metaPlugin);
  36. module.exports = app => {
  37. const { mongoose } = app;
  38. return mongoose.model('Mission', schema, 'mission');
  39. };