Source: lib/event.js

'use strict';

/**
 * Event
 * Событие, происходящее в определенное время в определенном месте.
 *
 * @see http://ruschema.org/Event
 *
 */

var mongoose = require('mongoose');
var extend = require('mongoose-schema-extend');
var parentModel = require('./thing');

var Model = function () {

  /**
   * Получение базовой коллекции
   * @type {Mongoose.Schema}
   */
  var Parent = mongoose.model('Thing').schema;
  var _Schema = Parent.extend(
    {

      /**
       *  Длительность (фильма, аудиозаписи, мероприятия и т.д.)
       *  в Формате даты ISO 8601.
       *  @see http://en.wikipedia.org/wiki/ISO_8601
       */
      duration: {},

      /**
       *  Дата и время начала события (в Формате даты ISO 8601 ).
       */
      startDate: { type: Date },

      /**
       *  Конечная дата и время события (в Формате даты ISO 8601).
       */
      endDate: { type: Date },

      /**
       *  Человек или организация, принимающие участие
       */
      atendee: {},

      /**
       * Люди или организации, принимающие участие.
       * (В единственном числе см. attendee).
       * Person or Organization
       */
      attendees: [],

      /**
       *  Местоположение события или организации.
       *  Если организация (или филиал) располагаются в торговом центре,
       *  то его название необходимо указывать в этом поле.
       *  Place or PostalAddress
       */
      location: [],

      /**
       *  Предложение о продаже —
       *  например, предложение о продаже продукта,
       *  DVD с фильмом или билетов на мероприятие.
       */
      offers: [],

      /**
       * Основной исполнитель на мероприятии,
       * например ведущий, музыкант или актер.
       *
       * Организатор (или главный исполнитель) мероприятия
       */
      performer: {},

      /**
       *  Организаторы (или главные исполнители) мероприятия
       *
       *  Основной исполнитель или исполнители на мероприятии,
       *  например ведущий, музыкант или актер (в единственном числе см. performer)
       *  Person or Organizations
       */
      performers: [],

      /**
       * Спонсоры мероприятия, события
       */
      sponsors: []

    },
    {
      collection: 'events',
      descriminationKey: '_type'
    });

  return mongoose.model('Event', _Schema);

};

module.exports = new Model();