summaryrefslogtreecommitdiff
path: root/lib/models.js
blob: 824586b42f7e5b3ffa4bd8e053a252c25760d7a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId;

var SoundSchema = new Schema({
    soundId: ObjectId,
    name: String,
    url: String,
    permalink: String,
    filetype: String,
    duration: { type: Number, default: 0 },
    date: { type: Date,  default: Date.now }
});

var OffsetsSchema = new Schema({
    soundId: String,
    offsets: { type: [Number] }
})

var LoopSchema = new Schema({
    soundId: String,
    sampleURL: String,
    startTime: Number,
    endTime: Number,
    duration: Number,
    beats: Number,
    offsets: Array,
    transformations: Array,
    date: { type: Date,  default: Date.now }
})

var UserSchema = new Schema({
    userId: ObjectId,
    score: { type: Number, default: 0 },
    name: String,
    image: String,
    date: { type: Date,  default: Date.now }
});

var FaveSchema = new Schema({
    userId: String,
    loopId: String,
    date: { type: Date,  default: Date.now }
});

var Sound = module.exports.Sound = mongoose.model('Sound', SoundSchema);
var Offsets = module.exports.Offsets = mongoose.model('Offsets', OffsetsSchema);
var Loop = module.exports.Loop = mongoose.model('Loop', LoopSchema);
var User = module.exports.User = mongoose.model('User', UserSchema);
var Fave = module.exports.Fave = mongoose.model('Fave', FaveSchema);
var Sound = module.exports.Sound = mongoose.model('Sound', SoundSchema);