Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/model.6/common/
Upload File :
Current File : /home/infinitibizsol/.trash/model.6/common/basicontactInfo.js

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;
var _mongoose = _interopRequireDefault(require("mongoose"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var phoneNumberSchema = new _mongoose["default"].Schema({
  phone_no: {
    type: String,
    required: true
  },
  type: {
    type: String,
    // enum: ["Home", "Work", "Mobile", "Other"],
    required: false,
    "default": ""
  },
  is_primary: {
    type: Boolean,
    "default": false
  }
});
var emailSchema = new _mongoose["default"].Schema({
  email_address: {
    type: String,
    required: true
  },
  type: {
    type: String,
    // enum: ["Home", "Work", "Mobile", "Other"],
    required: false,
    "default": ""
  },
  is_primary: {
    type: Boolean,
    "default": false
  }
});
var BasicContactInfo = new _mongoose["default"].Schema({
  user_id: {
    type: _mongoose["default"].Schema.ObjectId,
    ref: "User"
  },
  contact_id: {
    type: _mongoose["default"].Schema.ObjectId,
    ref: "Contact"
  },
  contact_preference: {
    type: String,
    "default": "Phone",
    "enum": ["Phone", "Mail", "Email", "Text"]
  },
  phone_numbers: {
    type: [phoneNumberSchema],
    validate: [{
      validator: function validator(v) {
        return v.length <= 4;
      },
      message: function message(props) {
        return "An agent can have up to 4 phone numbers!";
      }
    }, {
      validator: function validator(v) {
        var primaryCount = v.filter(function (phone) {
          return phone.is_primary;
        }).length;
        return primaryCount <= 1;
      },
      message: function message(props) {
        return "Only one phone number can be marked as primary!";
      }
    }]
  },
  emails: {
    type: [emailSchema],
    validate: [{
      validator: function validator(v) {
        return v.length <= 4;
      },
      message: function message(props) {
        return "An agent can have up to 2 emails!";
      }
    }, {
      validator: function validator(v) {
        var primaryCount = v.filter(function (email) {
          return email.is_primary;
        }).length;
        return primaryCount <= 1;
      },
      message: function message(props) {
        return "Only one email can be marked as primary!";
      }
    }]
  },
  createdOn: {
    type: Date,
    "default": Date.now
  },
  modifiedOn: {
    type: Date,
    "default": Date.now
  }
}, {
  toJSON: {
    virtuals: true
  },
  toObject: {
    virtuals: true
  }
});
var _default = exports["default"] = _mongoose["default"].model("BasicContactInfo", BasicContactInfo);

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists