'use strict';
var debug = require('debug')('schemas:organization');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var extend = require('mongoose-schema-extend');
var parentModel = require('./profile');
/**
* Organization
* @description http://ruschema.org/Organization
* @name Organization
* @version 0.0.1
* @constructor
*
* @see http://ruschema.org/Organization
* @see http://devsmash.com/blog/password-authentication-with-mongoose-and-bcrypt
* @see http://devsmash.com/blog/implementing-max-login-attempts-with-mongoose
*
*/
var Model = function () {
/**
* Получение базовой коллекции
* @type {Mongoose.Schema}
*/
var Parent = mongoose.model('Profile').schema;
/**
* Расширение схемы Parent
* @type {Mongoose.Schema}
* @private
*/
var _Schema = Parent.extend(
{
/** @lends Organization.prototype */
/**
* Физический адрес
*/
address: {},
/**
* Общая оценка, основанная на наборе рейтингов,
* отзывов и оценок.
*/
aggregateRating: {},
/**
* Марка (бренд) продукта.
*
*/
brand: {},
/**
* Контактная информация человека.
*/
contactPoint: {},
/**
* онтактная информация человека или организации.
* (В единственном числе contactPoint).
*/
contactPoints: [],
/**
* E-mail адрес.
*/
email: {},
/**
* Человек работающий в организации.
*/
employee: {},
/**
* Люди работающиие в организации.
* (В единственном числе employee).
*/
employees: [],
/**
* Мероприятия, проводящиеся в этом месте
* или этой организацией.
*/
event: {},
/**
* Мероприятия, проводящиеся
* в этом месте или этой организацией.
* (В единственном числе event).
*/
events: [],
/**
* Номер факса
*/
faxNumber: {},
/**
* Основатель организации.
*/
founder: {},
/**
* Основатели организации.
* (В единственном числе founder).
*/
founders: [],
/**
* Дата основания организации.
*/
foundingDate: Date,
/**
* Description
*/
hasPOS: {},
/**
* Количество специфических взаимодействий пользователя
* с описываемой записью — например, 20 UserLikes,
* 5 UserComments или 300 UserDownloads.
* Тип взаимодействия должен быть
* одним из подтипов UserInteraction.
*/
interactionCount: {},
/**
* Оффициальное имя организации,
* например зарегистрированое ее имя
*/
legalName: {},
/**
* Местоположение события или организации.
* Если организация (или филиал) располагаются в торговом центре,
* то его название необходимо указывать в этом поле.
*/
location: {},
/**
* URL картинки, являющейся логотипом.
*/
logo: {},
/**
* Указатель на продукты или услуги,
* предложенные организацией или частным лицом.
*/
makesOffer: {},
/**
* Член этой организации.
*/
member: {},
/**
* Члены этой организации. (В единственном числе member).
*/
members: [],
/**
* Продукты, принадлежашие организации или человеку.
*/
owns: [],
/**
* Отзыв о записи.
*/
rewiew: [],
/**
* Отзывы, обзоры.(в единственном числе review)
*/
rewiews: [],
/**
* Указатель продуктов или услуг, необходимые организации или человеку (спрос)
*/
seeks: {},
/**
* Номер телефона.
*/
telephone: {},
/**
* ИНН(идентификационный номер налогоплательщика)
* организации или физического лица.
*/
vatID: {}
}
);
return mongoose.model('Organization', _Schema);
};
module.exports = new Model();