update models

This commit is contained in:
Michael Fatemi 2021-04-10 19:15:05 -04:00
parent f454f31d32
commit db8da4a55e
3 changed files with 36 additions and 46 deletions

View File

@ -92,6 +92,6 @@ export async function getAccountIDFromIonCode(code: string) {
if (user == null) {
return await registerUserFromIonProfile(profile);
} else {
return user.uuid;
return user._id;
}
}

View File

@ -1,7 +1,22 @@
import { model, Schema } from 'mongoose';
import { model, Schema, Document, Model } from 'mongoose';
export interface User extends Document {
email: string;
username: string;
first_name: string;
last_name: string;
}
export interface Group extends Document {
member_ids: string[];
}
export interface Comment {
body: string;
author_id: string;
}
const UserSchema: Schema = new Schema({
uuid: { type: String, required: true },
email: { type: String, required: true },
username: { type: String, required: true },
first_name: { type: String, required: true },
@ -12,23 +27,37 @@ UserSchema.virtual('fullName').get(function (this) {
return this.firstName + this.lastName;
});
const UserModel = model('User', UserSchema);
const UserModel: Model<User> = 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);
export interface Pool extends Document {
title: string;
description: string;
participant_ids: string[];
driver_id: string;
create_time: string;
update_time: string;
comments: Comment[];
group_id: string;
status: 'pending' | 'cancelled' | 'completed' | 'interrupted';
capacity: number;
direction: 'pickup' | 'dropoff';
author_id: string;
type: 'request' | 'offer';
}
const PoolSchema: Schema = new Schema({
id: { type: String, required: true },
title: { type: String, required: true },
@ -46,6 +75,6 @@ const PoolSchema: Schema = new Schema({
type: { type: String, required: true },
});
const PoolModel = model('Pool', PoolSchema);
const PoolModel: Model<Pool> = model('Pool', PoolSchema);
export { UserModel, GroupModel, CommentModel, PoolModel };

View File

@ -1,39 +0,0 @@
namespace Carpool {
export interface Group {
id: string;
member_ids: string[];
}
export interface User {
uuid: string;
email: string;
username: string;
first_name: string;
last_name: string;
}
export interface Comment {
id: string;
body: string;
author_id: string;
}
export type Status = 'pending' | 'cancelled' | 'completed' | 'interrupted';
export interface Pool {
id: string;
title: string;
description: string;
participant_ids: string[];
driver_id: string;
create_time: string;
update_time: string;
comments: Comment[];
group_id: string;
status: Status;
capacity: number;
direction: 'pickup' | 'dropoff';
author_id: string;
type: 'request' | 'offer';
}
}