Initial commit
This commit is contained in:
17
backend/models/user/user.interface.ts
Normal file
17
backend/models/user/user.interface.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { Document } from 'mongoose';
|
||||
|
||||
export enum UserType {
|
||||
ADMIN = 'admin',
|
||||
USER = 'user',
|
||||
GUEST = 'guest'
|
||||
}
|
||||
|
||||
export interface IUser extends Document {
|
||||
name: string,
|
||||
password: string,
|
||||
salt: string,
|
||||
type: UserType,
|
||||
lastLogin: Date,
|
||||
twoFASecret?: string,
|
||||
createdAt?: Date
|
||||
}
|
||||
6
backend/models/user/user.model.ts
Normal file
6
backend/models/user/user.model.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { Model, model } from 'mongoose';
|
||||
import { IUser } from "./user.interface";
|
||||
import { schemaUser } from './user.schema';
|
||||
|
||||
const modelUser: Model<IUser> = model<IUser>('User', schemaUser , 'User');
|
||||
export { modelUser as User };
|
||||
16
backend/models/user/user.schema.ts
Normal file
16
backend/models/user/user.schema.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Schema } from 'mongoose';
|
||||
|
||||
const schemaUser = new Schema({
|
||||
name: { type: String, required: true },
|
||||
password: { type: String, required: true },
|
||||
salt: { type: String, required: true },
|
||||
type: { type: String, required: true, default: 'user' }, // This could be user, admin, guest
|
||||
twoFASecret: { type: String, required: false },
|
||||
lastLogin: { type: Date, required: true, default: Date.now },
|
||||
}, {
|
||||
timestamps: {
|
||||
createdAt: true
|
||||
}
|
||||
});
|
||||
|
||||
export { schemaUser }
|
||||
Reference in New Issue
Block a user