BoilerLiftUp / src / DB / Users.js
Users.js
Raw
const mongoose = require('mongoose');

const definedAvgSchema = new mongoose.Schema({
    "bench_press": {
        type: Number
    }, 
    "squat": {
        type: Number
    }, 
    "deadlift": {
        type: Number
    }, 
  });

const definedPRSchema = new mongoose.Schema({
    "bench_press": {
        type: Number
    }, 
    "squat": {
        type: Number
    }, 
    "deadlift": {
        type: Number
    }, 
  });

const users = new mongoose.Schema({
    uid: {
        type: String
    },
    username: {
		type: String,
		required: true,
		unique: true
	},
	first_name: {
		type: String,
        required: true,
	},
	last_name: {
		type: String,
        required: true,
	},
	age: {
		type: Number,
        required: true,
	},
	gender: {
		type: String,
        required: true,

	},
    height: {
		type: Number,
        required: true,

	},
    weight: {
		type: Number,
        required: true,
	},
    average_stats: {
        type: definedAvgSchema,
        default: () => ({})
    },
    personal_records: {
        type: definedPRSchema,
        default: () => ({})
    },
    other_avg_stats: [{
        exercise: String,
        stat: Number
    }],
    other_personal_records: [{
        exercise: String,
        stat: Number
    }],
    level: [{
        type: String
    }],
    interests: [
        {
            type: String
        }
    ],
    privacy: {
        type: Number
    },
    profile_picture: {
        type: String
    },
    calories: [{
        daily_intake: [{
            date: Date,
            food: String,
            calorie_value: Number
            }]
    }],
    macros: [{
        daily_intake: [{
            date: Date,
            carbohydrates: Number,
            protein: Number,
            fats: Number
            }]
    }],
    workouts: [{
        type: String
    }],
});

module.exports = Users = mongoose.model('Users', users);