Initial commit

This commit is contained in:
2020-10-19 19:00:17 +02:00
parent 634ead79db
commit 48140f557b
61 changed files with 18269 additions and 0 deletions

View 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
}

View 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 };

View 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 };

View 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
}

View 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 };

View 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 };

View 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
}

View 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 };

View 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 }