Sindbad~EG File Manager
"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