Source: lib/plugins/meta.js

"use strict";
/**
 * Мета-данные документа
 * @module plugins/meta
 *
 */
module.exports = exports = function meta(schema,options){

  schema.add({

     meta_ctime: {
       type: Date,
       default: Date.now
     }
  });

  schema.add({
    meta_utime: {
      type: Date,
      index: true
    }
  });

  schema.add({
    meta_cuser: {
      type: String
    }
  });

  schema.add({
    meta_uuser: {
      type: String
    }
  });

  schema.add({
    meta_delete: {
      type: Boolean,
      default: false
    }
  });

  schema.add({
    meta_published: {
      type: Boolean,
      default: true
    }
  });

  schema.add({
    meta_isfolder: {
      type: Boolean,
      default: false
    }
  });

  schema.add({
    meta_status: {
      type: String,
      default: 'default'
    }
  });

  schema.methods.lastUpdate = function () {
    var self = this;
    return self.meta_utime;
  };

  schema.methods.created = function () {
    var self = this;
    return self.meta_ctime;
  };

  schema.pre('save', function (next) {

    var self = this;

    if (self.isNew) {
      self.meta_ctime = self.meta_utime = Date.now();
      return next();
    }

    self.meta_utime = Date.now();
    self.markModified('meta_utime');

    next();

  });

};