investigation.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. qq: { type: String, required: false }, // qq
  20. person_number: { type: String, required: false }, // 职工人数
  21. bk_number: { type: String, required: false }, // 本科以上人数
  22. research_number: { type: String, required: false }, // 研究开发人数
  23. advanced_number: { type: String, required: false }, // 高级职称人数
  24. brief: { type: String, required: false }, // 企业概况
  25. products: { type: Array, required: false }, // 产品列表
  26. requirement: { type: Object, required: false }, // 企业需求情况
  27. };
  28. const schema = new Schema(investigation, { toJSON: { virtuals: true } });
  29. schema.index({ id: 1 });
  30. schema.index({ 'meta.createdAt': 1 });
  31. schema.index({ name: 1 });
  32. schema.index({ field: 1 });
  33. schema.index({ register_time: 1 });
  34. schema.index({ register_type: 1 });
  35. schema.index({ contact_tel: 1 });
  36. schema.plugin(metaPlugin);
  37. module.exports = app => {
  38. const { mongoose } = app;
  39. return mongoose.model('Investigation', schema, 'investigation');
  40. };