UNPKG

hulawho

Version:
97 lines (87 loc) 4.24 kB
var mongoose = require('mongoose') var Schema = mongoose.Schema var gameSchema = new mongoose.Schema({ home_team: {type: String, required: true}, away_team: {type: String, required: true}, date: {type: Date, required: true}, tournament: {type: String, required: false}, round: {type: String, required: false}, cluster: {type: String, required: false}, leg: {type: String, required: false}, predictions: [{type: Schema.Types.ObjectId, ref: 'Prediction'}], result: {type: Schema.Types.ObjectId, required: false, ref: 'Result'}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var leagueSchema = new mongoose.Schema({ name: {type: String, required: true}, admin: {type: Schema.Types.ObjectId, required: true, ref: 'User'}, code: {type: String, required: true}, kdf: {type: String, required: true}, members: [{type: Schema.Types.ObjectId, ref: 'User'}], date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var userSchema = new mongoose.Schema({ auth: {type: String, required: true}, name: {type: String, required: true}, nick: {type: String, required: true}, email: {type: String, required: true}, kdf: {type: String, required: false}, international: {type: String, required: false}, club: {type: String, required: false}, leagues: [{type: Schema.Types.ObjectId, ref: 'League'}], verified: {type: Boolean, required: true, default: false}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var resultSchema = new mongoose.Schema({ game: {type: Schema.Types.ObjectId, required: true, ref: 'Game'}, home_score: {type: Number, required: true}, away_score: {type: Number, required: true}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var predictionSchema = new mongoose.Schema({ user: {type: Schema.Types.ObjectId, required: true, ref: 'User'}, game: {type: Schema.Types.ObjectId, required: true, ref: 'Game'}, home_score: {type: Number, required: true}, away_score: {type: Number, required: true}, analysis: {type: Schema.Types.ObjectId, required: false, ref: 'PredictionAnalysis'}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var predictionAnalysisSchema = new mongoose.Schema({ prediction: {type: Schema.Types.ObjectId, required: true, ref: 'Prediction'}, user: {type: Schema.Types.ObjectId, required: true, ref: 'User'}, correct_score: {type: Boolean, required: true}, correct_winner: {type: Boolean, required: true}, score_distance: {type: Number, required: true}, points: {type: Number, required: true}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var leaderboardSchema = new mongoose.Schema({ user: {type: Schema.Types.ObjectId, required: true, ref: 'User'}, total_predictions: {type: Number, required: true, default: 0}, total_correct_scores: {type: Number, required: true, default: 0}, total_correct_winners: {type: Number, required: true, default: 0}, mean_score_distance: {type: Number, required: false}, points: {type: Number, required: true, default: 0}, date_created: {type: Date, required: true, default: new Date()}, date_updated: {type: Date, required: true, default: new Date()} }) var Game = mongoose.model('Game', gameSchema) var League = mongoose.model('League', leagueSchema) var User = mongoose.model('User', userSchema) var Result = mongoose.model('Result', resultSchema) var Prediction = mongoose.model('Prediction', predictionSchema) var PredictionAnalysis = mongoose.model('PredictionAnalysis', predictionAnalysisSchema) var Leaderboard = mongoose.model('Leaderboard', leaderboardSchema) exports.Game = Game exports.League = League exports.User = User exports.Result = Result exports.Prediction = Prediction exports.PredictionAnalysis = PredictionAnalysis exports.Leaderboard = Leaderboard