Rewrite phase 1.
Started improved client code structure. Implemented session based authentication serverside. Implemented user, match, and sport database models serverside. Implemented Controllers for variety of C and R operations of CRUD.
This commit is contained in:
27
sports-matcher/server/schemas/matchModel.js
Normal file
27
sports-matcher/server/schemas/matchModel.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import mongoose from "mongoose";
|
||||
import ModelNameRegister from "./modelNameRegister.js";
|
||||
|
||||
const Types = mongoose.Schema.Types; // Some types require defining from this object.
|
||||
|
||||
const matchSchema = new mongoose.Schema({
|
||||
title: { type: String, required: true, trim: true },
|
||||
when: { type: Date, required: true },
|
||||
publicity: { type: Number, required: true, default: 2 },
|
||||
location: {
|
||||
type: [Number],
|
||||
required: true,
|
||||
validate: {
|
||||
validator: function (v) {
|
||||
return v.length === 2;
|
||||
},
|
||||
message: "Invalid coordinate format (array not length of 2)."
|
||||
}
|
||||
},
|
||||
creator: { type: Types.ObjectId, ref: ModelNameRegister.User },
|
||||
participants: { type: [{ type: Types.ObjectId, ref: ModelNameRegister.User }], required: true, default: [] },
|
||||
difficulty: { type: Number, required: true },
|
||||
sport: { type: Types.ObjectId, ref: ModelNameRegister.Sport },
|
||||
createDate: { type: Date, required: true, default: Date.now }
|
||||
});
|
||||
|
||||
export default mongoose.model(ModelNameRegister.Match, matchSchema);
|
||||
Reference in New Issue
Block a user