investigation.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  4. // 企业调查
  5. const investigation = {
  6. name: { type: String, required: true }, // 企业名称
  7. address: { type: String, required: false }, // 通讯地址
  8. postal: { type: String, required: false }, // 邮编
  9. field: { type: Array, required: false }, // 所属领域
  10. funds: { type: String, required: false }, // 注册资金
  11. register_time: { type: String, required: false }, // 注册时间
  12. register_address: { type: String, required: false }, // 注册地
  13. web_site: { type: String, required: false }, // 网址
  14. legal_person: { type: Object, required: false }, // 法人信息
  15. register_type: { type: Array, required: false }, // 注册登记类型
  16. contact: { type: String, required: false }, // 联系人
  17. contact_tel: { type: String, required: false }, // 联系电话
  18. email: { type: String, required: false }, // 电子邮箱
  19. person_number: { type: String, required: false }, // 职工人数
  20. bk_number: { type: String, required: false }, // 本科以上人数
  21. research_number: { type: String, required: false }, // 研究开发人数
  22. advanced_number: { type: String, required: false }, // 高级职称人数
  23. brief: { type: String, required: false }, // 企业概况
  24. products: { type: Array, required: false }, // 产品列表
  25. requirement: { type: Object, required: false }, // 企业需求情况
  26. };
  27. const schema = new Schema(investigation, { toJSON: { virtuals: true } });
  28. schema.index({ id: 1 });
  29. schema.index({ 'meta.createdAt': 1 });
  30. schema.index({ name: 1 });
  31. schema.index({ field: 1 });
  32. schema.index({ register_time: 1 });
  33. schema.index({ register_type: 1 });
  34. schema.index({ contact_tel: 1 });
  35. schema.plugin(metaPlugin);
  36. module.exports = app => {
  37. const { mongoose } = app;
  38. return mongoose.model('Investigation', schema, 'investigation');
  39. };