sendou.ink/mongoose-models/round.js
2020-03-16 12:23:40 +02:00

99 lines
2.7 KiB
JavaScript

const mongoose = require("mongoose")
const roundSchema = new mongoose.Schema({
tournament_id: {
type: mongoose.Schema.Types.ObjectId,
ref: "Tournament",
required: true,
},
stage: { type: String, required: true },
mode: { type: String, required: true },
game_number: { type: Number, required: true },
round_number: { type: Number, required: true },
round_name: { type: String, required: true },
winning_team_name: { type: String, required: true },
winning_team_players: {
type: [String],
required: true,
validate: [player_limit, "{PATH} must be 4"],
},
winning_team_weapons: {
type: [String],
required: true,
validate: [player_limit, "{PATH} must be 4"],
},
winning_team_unique_ids: {
type: [String],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [null, null, null, null],
},
winning_team_main_abilities: {
type: [[String]],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
],
},
winning_team_sub_abilities: {
type: [[String]],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
],
},
losing_team_name: { type: String, required: true },
losing_team_players: {
type: [String],
required: true,
validate: [player_limit, "{PATH} must be 4"],
},
losing_team_weapons: {
type: [String],
required: true,
validate: [player_limit, "{PATH} must be 4"],
},
losing_team_unique_ids: {
type: [String],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [null, null, null, null],
},
losing_team_main_abilities: {
type: [[String]],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [
[null, null, null],
[null, null, null],
[null, null, null],
[null, null, null],
],
},
losing_team_sub_abilities: {
type: [[String]],
required: false,
validate: [player_limit, "{PATH} must be 4"],
default: [
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null, null],
],
},
})
function player_limit(val) {
return val.length === 4
}
module.exports = mongoose.model("Round", roundSchema)