Initial commit
This commit is contained in:
12
backend/models/phone/phone.interface.ts
Normal file
12
backend/models/phone/phone.interface.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Document } from 'mongoose';
|
||||
import { IUser } from '../user/user.interface';
|
||||
|
||||
export interface IPhone extends Document {
|
||||
displayName: String,
|
||||
modelName: String,
|
||||
operatingSystem: String,
|
||||
architecture: String,
|
||||
user: IUser,
|
||||
updatedAt?: Date,
|
||||
createdAt?: Date
|
||||
}
|
||||
6
backend/models/phone/phone.model.ts
Normal file
6
backend/models/phone/phone.model.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { Model, model } from 'mongoose';
|
||||
import { IPhone } from './phone.interface';
|
||||
import { schemaPhone } from './phone.schema';
|
||||
|
||||
const modelPhone: Model<IPhone> = model<IPhone>('Phone', schemaPhone , 'Phone');
|
||||
export { modelPhone as Phone };
|
||||
17
backend/models/phone/phone.schema.ts
Normal file
17
backend/models/phone/phone.schema.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { Schema } from 'mongoose';
|
||||
import { User } from '../user/user.model';
|
||||
|
||||
const schemaPhone = new Schema({
|
||||
displayName: { type: String, required: true },
|
||||
modelName: { type: String, required: false },
|
||||
operatingSystem: { type: String, required: false },
|
||||
architecture: { type: String, required: false },
|
||||
user: { type: User, required: true }
|
||||
}, {
|
||||
timestamps: {
|
||||
createdAt: true,
|
||||
updatedAt: true
|
||||
}
|
||||
});
|
||||
|
||||
export { schemaPhone };
|
||||
11
backend/models/track/track.interface.ts
Normal file
11
backend/models/track/track.interface.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Document } from 'mongoose';
|
||||
import { IPhone } from '../phone/phone.interface';
|
||||
|
||||
export interface ITrack extends Document {
|
||||
coordinate?: number[],
|
||||
velocity?: number,
|
||||
battery?: number,
|
||||
magneticField?: number,
|
||||
phone: IPhone,
|
||||
createdAt?: Date
|
||||
}
|
||||
6
backend/models/track/track.model.ts
Normal file
6
backend/models/track/track.model.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { Model, model } from 'mongoose';
|
||||
import { ITrack } from './track.interface';
|
||||
import { schemaTrack } from './track.schema';
|
||||
|
||||
const modelTrack: Model<ITrack> = model<ITrack>('Track', schemaTrack, 'Track');
|
||||
export { modelTrack as Phone };
|
||||
16
backend/models/track/track.schema.ts
Normal file
16
backend/models/track/track.schema.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Schema } from 'mongoose';
|
||||
import { Phone } from '../phone/phone.model';
|
||||
|
||||
const schemaTrack = new Schema({
|
||||
coordinate: { type: [Number], required: false },
|
||||
velocity: { type: Number, required: false },
|
||||
battery: { type: Number, required: false },
|
||||
magneticField: { type: Number, required: false },
|
||||
phone: { type: Phone, required: true, default: 'user' }
|
||||
}, {
|
||||
timestamps: {
|
||||
createdAt: true
|
||||
}
|
||||
});
|
||||
|
||||
export { schemaTrack };
|
||||
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