Files
meanTorrent/modules/torrents/server/models/peer.server.model.js

82 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-03-25 23:46:38 +08:00
'use strict';
/**
* Module dependencies
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* Peer Schema
*/
var PeerSchema = new Schema({
user: {
2017-04-17 16:53:02 +08:00
type: Schema.Types.ObjectId,
2017-03-25 23:46:38 +08:00
ref: 'User'
},
torrent: {
2017-04-17 16:53:02 +08:00
type: Schema.Types.ObjectId,
ref: 'Torrent'
2017-03-25 23:46:38 +08:00
},
2017-04-15 01:56:50 +08:00
peer_id: {
type: String,
default: '',
trim: true
2017-03-25 23:46:38 +08:00
},
peer_ip: {
type: String,
default: '',
trim: true
},
peer_port: {
type: Number,
default: 0
},
peer_uploaded: {
type: Number,
default: 0
},
peer_downloaded: {
type: Number,
default: 0
},
2017-04-20 15:15:54 +08:00
peer_left: {
type: Number,
default: 0
},
2017-04-16 14:06:11 +08:00
peer_status: {
type: String,
default: 'leecher',
trim: true
2017-03-25 23:46:38 +08:00
},
peer_connectable: {
type: String,
enum: ['yes', 'no'],
default: 'yes'
},
user_agent: {
type: String,
default: '',
trim: true
},
2017-03-25 23:46:38 +08:00
startedat: {
type: Date,
default: Date.now
},
2017-04-17 16:53:02 +08:00
last_announce_at: {
type: Date,
default: ''
},
2017-03-25 23:46:38 +08:00
finishedat: {
type: Date,
default: ''
}
});
PeerSchema.index({user: -1, startedat: -1});
PeerSchema.index({info_hash: -1, startedat: -1});
2017-04-15 01:56:50 +08:00
PeerSchema.index({torrent: -1, startedat: -1});
2017-03-25 23:46:38 +08:00
PeerSchema.index({passkey: -1, startedat: -1});
mongoose.model('Peer', PeerSchema);