mirror of
https://github.com/myfatemi04/wheelshare-old-backend.git
synced 2025-04-20 11:40:16 -04:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { model, Schema } from 'mongoose';
|
|
|
|
const UserSchema: Schema = new Schema({
|
|
email: { type: String, required: true },
|
|
username: { type: String, required: true },
|
|
first_name: { type: String, required: true },
|
|
last_name: { type: String, required: true },
|
|
});
|
|
|
|
UserSchema.virtual('fullName').get(function (this) {
|
|
return this.firstName + this.lastName;
|
|
});
|
|
|
|
const UserModel = model('User', UserSchema);
|
|
|
|
const GroupSchema: Schema = new Schema({
|
|
id: { type: String, required: true },
|
|
member_ids: { type: [String], required: true },
|
|
});
|
|
|
|
const GroupModel = model('Group', GroupSchema);
|
|
|
|
const CommentSchema: Schema = new Schema({
|
|
id: { type: String, required: true },
|
|
text: { type: String, required: true },
|
|
author_id: { type: String, required: true },
|
|
});
|
|
|
|
const CommentModel = model('Comment', CommentSchema);
|
|
|
|
const PoolSchema: Schema = new Schema({
|
|
id: { type: String, required: true },
|
|
title: { type: String, required: true },
|
|
description: { type: String, required: true },
|
|
participant_ids: { type: [String], required: true },
|
|
driver_id: { type: String, required: true },
|
|
create_time: { type: String, required: true },
|
|
update_time: { type: String, required: true },
|
|
comments: { type: [CommentSchema], required: true },
|
|
group_id: { type: String, required: true },
|
|
status: { type: String, required: true },
|
|
capacity: { type: Number, required: true },
|
|
direction: { type: String, required: true },
|
|
author_id: { type: String, required: true },
|
|
type: { type: String, required: true },
|
|
});
|
|
|
|
const PoolModel = model('Pool', PoolSchema);
|
|
|
|
export { UserModel, GroupModel, CommentModel };
|