Skip to content

Commit

Permalink
Merge pull request #27 from hack4impact-calpoly/sammy-create-user-sch…
Browse files Browse the repository at this point in the history
…ema-in-mongodb

feat: user_schema
  • Loading branch information
javalosr2004 authored Feb 3, 2024
2 parents 72e6c96 + 72f4ac8 commit 01110b1
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 19 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ yarn-error.log*

# local env files
.env*.local
/.env
.env

# vercel
.vercel
Expand Down
28 changes: 14 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"@emotion/styled": "^11.11.0",
"@heroicons/react": "^2.1.1",
"eslint-plugin-prettier": "^5.1.3",
"mongoose": "^7.6.8",
"framer-motion": "^11.0.3",
"mongoose": "^7.6.3",
"next": "14.0.0",
"react": "^18",
"react-dom": "^18",
Expand Down
39 changes: 36 additions & 3 deletions src/database/userSchema.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,42 @@
/*
Things to include in the schema
user role : user or admin : String
events user went to : id attached to the event : List
volunteer events users went to : id's of the volunteer event : List
age : Integer
gender: String
Acceptance Criteria
Exactly as above
*/

import mongoose, { Schema } from "mongoose";

//! Example user schema. Not guaranteed to work
type User = {
email: string;
firstName: string;
lastName: string;
age: number;
gender: number;
role: ["user", "admin"];
digitalWaiver: Schema.Types.ObjectId | null;
eventsAttended: [Schema.Types.ObjectId];
};

const UserSchema = new Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
email: { type: String, required: true, unique: true },
firstName: { type: String, required: true },
lastName: { type: String, required: true },
age: { type: Number, required: true },
gender: { type: String, required: true },
role: { type: String, enum: ["user", "admin"], required: true },
digitalWaiver: { type: Schema.Types.ObjectId, required: false },
eventsAttended: [{ type: Schema.Types.ObjectId, ref: "Event" }],
});

export default mongoose.models.User || mongoose.model("User", UserSchema);

0 comments on commit 01110b1

Please sign in to comment.