diff --git a/src/db/schemas/index.js b/src/db/schemas/index.js
index ee1c337..ef18499 100644
--- a/src/db/schemas/index.js
+++ b/src/db/schemas/index.js
@@ -1 +1,3 @@
export * from './user.js';
+export * from './spendHistory.js';
+export * from './sensorHistory.js';
diff --git a/src/db/schemas/sensorHistory.js b/src/db/schemas/sensorHistory.js
new file mode 100644
index 0000000..0cf1187
--- /dev/null
+++ b/src/db/schemas/sensorHistory.js
@@ -0,0 +1,34 @@
+import { model, Schema, ObjectId } from 'mongoose';
+
+/**
+ * User schema for MongoDB.
+ * @type {module:mongoose.Schema}
+ */
+export const sensorHistorySchema = new Schema(
+ {
+ createdAt: {
+ type: Date,
+ default: Date.now,
+ immutable: true
+ },
+ sensor: {
+ type: String,
+ required: true,
+ immutable: true
+ },
+ value: {
+ type: Number,
+ required: true,
+ immutable: true
+ }
+ },
+ {
+ timeseries: {
+ timeField: 'createdAt'
+ }
+ }
+);
+
+export const DbSpendHistory = model('sensorHistory', sensorHistorySchema);
+
+console.log('[MONGODB] sensorHistory schema initialized successfully!');
diff --git a/src/db/schemas/spendHistory.js b/src/db/schemas/spendHistory.js
index b12bcc3..b4c3f20 100644
--- a/src/db/schemas/spendHistory.js
+++ b/src/db/schemas/spendHistory.js
@@ -1,29 +1,39 @@
-import { model, Schema } from 'mongoose';
-import { hash, compare } from 'bcrypt';
-import {ref} from "joi";
+import { model, Schema, ObjectId } from 'mongoose';
/**
* User schema for MongoDB.
* @type {module:mongoose.Schema}
*/
-export const spendHistorySchema = new Schema({
- spentBy: {
- type: ObjectId,
- ref: "users"
+export const spendHistorySchema = new Schema(
+ {
+ venue: {
+ type: String,
+ required: true,
+ immutable: true
+ },
+ items: {
+ type: [String],
+ required: true,
+ immutable: true
+ },
+ cost: {
+ type: Number,
+ required: true,
+ immutable: true
+ },
+ createdAt: {
+ type: Date,
+ default: Date.now,
+ immutable: true
+ }
+ },
+ {
+ timeseries: {
+ timeField: 'createdAt'
+ }
}
- createdAt: {
- type: Date,
- default: Date.now,
- immutable: true
- }
-});
-
-export const UserType = Object.freeze({
- USER: 'user',
- MONITOR: 'monitor',
- ADMIN: 'admin'
-});
+);
-export const DbUser = model('user', userSchema);
+export const DbSpendHistory = model('spendHistory', spendHistorySchema);
-console.log('[MONGODB] User schema initialized successfully!');
+console.log('[MONGODB] spendHistory schema initialized successfully!');
diff --git a/src/db/schemas/user.js b/src/db/schemas/user.js
index f8802d7..7680319 100644
--- a/src/db/schemas/user.js
+++ b/src/db/schemas/user.js
@@ -84,6 +84,27 @@ export const userSchema = new Schema({
monitoredUsers: {
type: [ObjectId],
ref: 'users'
+ },
+ balance: {
+ type: Number,
+ default: 0
+ },
+ spendHistory: {
+ type: [ObjectId],
+ ref: 'spendHistory'
+ },
+ emergencyContacts: {
+ type: String
+ },
+ medicalInfo: {
+ type: String
+ },
+ location: {
+ // https://stackoverflow.com/a/27218808
+ // Longtitute, Latitude info
+ type: [Number],
+ index: { type: '2dsphere', sparse: true },
+ count: 2
}
});
|