tuned-city
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

models.js
application/javascript

Download raw (2.1 KB)

/*
 * Models
 */

var mongoose = require('mongoose');
var connection = require('./mongo_store').connection;


var ObjectId = mongoose.Schema.ObjectId


var MediaTypes = [
    'video/ogv', 
    'audio/oga',
    'audio/mp3', 
    'video/mkv', 
    'audio/mka', 
    'video/webmv', 
    'audio/webma'];

var MediaSchema = mongoose.Schema({
    url:String,
    type:{type:String, enum:MediaTypes}
});

// MediaSchema.set('toObject', {transform: function(doc, ret, options){
//     var oid = ret._id;
//     ret._id = oid.toString();
// }});

var CursorSchema = mongoose.Schema({
    media:{type:ObjectId, ref:'Media' },
    cursor:Number,
});
// CursorSchema.pre('init', function(next, doc, query){
//     query.populate('media');
//     next();
//     //     return doc;
// });



var ConnectionSchema = mongoose.Schema({
    start:{type:ObjectId, ref:'Cursor'},
    end:{type:ObjectId, ref:'Cursor'},
    annotation: String,
});
// ConnectionSchema.pre('init', function(next, doc, query){
//     query.populate('start').populate('end');
//     next();
// });



var PathSchema = mongoose.Schema({
    title: String,
    trackpoints: [{type:ObjectId, ref:'Connection'}]
});
// PathSchema.pre('init', function(next, doc, query){
//     query.populate('trackpoints');
//     next();
// });




var BookmarkSchema = mongoose.Schema({
    note:String,
    cursor:{type:ObjectId, ref:'Cursor'}
});
// BookmarkSchema.pre('init', function(next, doc, query){
//     query.populate('cursor');
//     next();
// });

var ShelfSchema = mongoose.Schema({
    title:String,
    bookmarks:[{type:ObjectId, ref:'Bookmark'}]
});
// ShelfSchema.pre('init', function(next, doc, query){
//     query.populate('bookmarks');
//     next();
// });



exports.Cursor = connection.model('Cursor', CursorSchema);
exports.Media = connection.model('Media', MediaSchema);
exports.Connection = connection.model('Connection', ConnectionSchema);
exports.Path = connection.model('Path', PathSchema);
exports.Bookmark = connection.model('Bookmark', BookmarkSchema);
exports.Shelf = connection.model('Shelf', ShelfSchema);
// might prove usefull 
exports.mongo_connection = connection;