|
|
|
const mongoose = require("mongoose");
|
|
|
|
const moment = require('moment');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const Schema = mongoose.Schema;
|
|
|
|
const ObjectId = Schema.Types.ObjectId;
|
|
|
|
|
|
|
|
// Store a random password reset code
|
|
|
|
const code = Math.floor(100000 + Math.random() * 900000);
|
|
|
|
const RoleSchema = new Schema({ name: String });
|
|
|
|
// const tanksSchema = new mongoose.Schema({
|
|
|
|
// hardwareId: { type: String },
|
|
|
|
// hardwareId_type: { type: String },
|
|
|
|
// hardwareId_company: { type: String },
|
|
|
|
// customerId: { type: String, default: null },
|
|
|
|
// tankName: { type: String, default: null },
|
|
|
|
// blockName: { type: String, default: null },
|
|
|
|
// capacity: { type: String, default: "0" },
|
|
|
|
// typeOfWater: { type: String, default: null },
|
|
|
|
// waterlevel: { type: String, default: "0" },
|
|
|
|
// tankLocation: { type: String, default: null },
|
|
|
|
// motor_status: { type: String, default: 0 },
|
|
|
|
// connections: {
|
|
|
|
// source: { type: String},
|
|
|
|
// inputConnections: [{ inputConnections: String,input_type:String,motor_status: { type: String, default: "0" } }],
|
|
|
|
// outputConnections: [{ outputConnections: String,output_type:String }]
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
const tanksSchema = new mongoose.Schema({
|
|
|
|
hardwareId: { type: String },
|
|
|
|
InstallerId: { type: String, default: null },
|
|
|
|
tankhardwareId: { type: String },
|
|
|
|
hardwareId_type: { type: String },
|
|
|
|
hardwareId_company: { type: String },
|
|
|
|
customerId: { type: String, default: null },
|
|
|
|
tankName: { type: String, default: null },
|
|
|
|
blockName: { type: String, default: null },
|
|
|
|
shape: { type: String, default: null },
|
|
|
|
capacity: { type: String, default: "0" },
|
|
|
|
height: { type: String, default: "0" },
|
|
|
|
length: { type: String, default: "0" },
|
|
|
|
width: { type: String, default: "0" },
|
|
|
|
tankLocation: { type: String, default: null },
|
|
|
|
waterCapacityPerCm: { type: String, default: "0" },
|
|
|
|
typeOfWater: { type: String, default: null },
|
|
|
|
waterlevel: { type: String, default: "0" },
|
|
|
|
waterlevel_at_midnight: { type: String, default: "0" },
|
|
|
|
need_sensor:{ type: String, default: "no" },
|
|
|
|
total_water_added_from_midnight: { type: String, default: "0" },
|
|
|
|
auto_min_percentage: { type: String, default: "20" },
|
|
|
|
reserved_percentage: { type: String, default: "20" },
|
|
|
|
auto_max_percentage: { type: String, default: "80" },
|
|
|
|
notificationSentCritical: { type: Boolean },
|
|
|
|
notificationSentVeryLow: { type: Boolean },
|
|
|
|
notificationSentLow: { type: Boolean },
|
|
|
|
notificationSentCriticalHigh: { type: Boolean },
|
|
|
|
notificationSentVeryHigh: { type: Boolean },
|
|
|
|
notificationSentHigh: { type: Boolean },
|
|
|
|
|
|
|
|
connections: {
|
|
|
|
source: { type: String },
|
|
|
|
inputConnections: [
|
|
|
|
{
|
|
|
|
inputConnections: { type: String },
|
|
|
|
input_type: { type: String },
|
|
|
|
inputismotor: { type: Boolean },
|
|
|
|
motor_id: { type: String, default: null },
|
|
|
|
motor_status: { type: String, default: "0" },
|
|
|
|
auto_mode: { type: String, default: "inactive" },
|
|
|
|
motor_stop_status: { type: String, default: "1" },
|
|
|
|
motor_on_type: { type: String, default: "manual" },
|
|
|
|
capacity: { type: String, default: null },
|
|
|
|
water_level: { type: String, default: null },
|
|
|
|
manual_threshold_percentage: { type: String, default: "90" },
|
|
|
|
manual_threshold_time: { type: String, default: null },
|
|
|
|
|
|
|
|
stop_threshold_time: { type: String, default: null },
|
|
|
|
threshold_type: { type: String, default: "percentage" },
|
|
|
|
startTime: { type: String, default: null },
|
|
|
|
start_instance_id: { type: String, default: null },
|
|
|
|
stopTime: { type: String, default: null },
|
|
|
|
waterlevelPercentage: { type: String, default: null }
|
|
|
|
}
|
|
|
|
],
|
|
|
|
outputConnections: [
|
|
|
|
{
|
|
|
|
outputConnections: { type: String },
|
|
|
|
output_type: { type: String },
|
|
|
|
outputismotor: { type: Boolean },
|
|
|
|
motor_id: { type: String, default: null },
|
|
|
|
motor_status: { type: String, default: "0" },
|
|
|
|
motor_stop_status: { type: String, default: "1" },
|
|
|
|
capacity: { type: String, default: null },
|
|
|
|
water_level: { type: String, default: null },
|
|
|
|
manual_threshold_percentage: { type: String, default: "90" },
|
|
|
|
manual_threshold_time: { type: String, default: null },
|
|
|
|
threshold_type: { type: String, default: "percentage" },
|
|
|
|
waterlevelPercentage: { type: String, default: null }
|
|
|
|
}
|
|
|
|
],
|
|
|
|
inputWaterlevelPercentage: { type: String, default: null },
|
|
|
|
outputWaterlevelPercentage: { type: String, default: null }
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const motordataSchema = new mongoose.Schema({
|
|
|
|
customerId: { type: String, default: null },
|
|
|
|
motor_id: { type: String, default: null },
|
|
|
|
start_instance_id:{type:String,default:null},
|
|
|
|
supplierTank: { type: String, default: null },
|
|
|
|
receiverTank: { type: String, default: null },
|
|
|
|
supplierInitialwaterlevel: { type: String, default: "0" },
|
|
|
|
supplierfinalwaterlevel: { type: String, default: "0" },
|
|
|
|
startTime: { type: String, default: null },
|
|
|
|
stopTime: { type: String, default: null },
|
|
|
|
runtime:{type:String, default:"0"},
|
|
|
|
supplier_type: { type: String, default: null },
|
|
|
|
receiver_type: { type: String, default: null },
|
|
|
|
quantity_delivered:{ type: String, default: null },
|
|
|
|
receiverInitialwaterlevel: { type: String, default: "0" },
|
|
|
|
receiverfinalwaterlevel: { type: String, default: "0" },
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const tankSchema = new mongoose.Schema({
|
|
|
|
tankhardwareId: { type: String },
|
|
|
|
tankHeight: { type: String, required: true },
|
|
|
|
maxLevel: { type: String,default:null },
|
|
|
|
minLevel: { type: String,default:null },
|
|
|
|
date: { type: String, required: true },
|
|
|
|
time: { type: String, required: true }
|
|
|
|
});
|
|
|
|
|
|
|
|
const IOttankSchema = new mongoose.Schema({
|
|
|
|
hardwareId: { type: String },
|
|
|
|
mode: { type: String },
|
|
|
|
tanks: [tankSchema],
|
|
|
|
date: { type: String, required: true },
|
|
|
|
time: { type: String, required: true }
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const tankWaterLevelSchema = new mongoose.Schema({
|
|
|
|
customerId: { type: String },
|
|
|
|
tankName: { type: String },
|
|
|
|
tankLocation: { type: String },
|
|
|
|
waterlevel: { type: String },
|
|
|
|
time: { type: String }
|
|
|
|
});
|
|
|
|
|
|
|
|
const tankconsumptionSchema = new mongoose.Schema({
|
|
|
|
customerId: { type: String },
|
|
|
|
tankName: { type: String },
|
|
|
|
tankLocation: { type: String },
|
|
|
|
consumption: { type: String },
|
|
|
|
block:{type: String},
|
|
|
|
typeofwater:{type:String},
|
|
|
|
time: { type: String }
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const tankconsumptionoriginalSchema = new mongoose.Schema({
|
|
|
|
customerId: { type: String },
|
|
|
|
tankName: { type: String },
|
|
|
|
tankLocation: { type: String },
|
|
|
|
consumption: { type: String },
|
|
|
|
block:{type: String},
|
|
|
|
typeofwater:{type:String},
|
|
|
|
time: { type: String }
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const Tank = mongoose.model("Tank", tanksSchema);
|
|
|
|
const MotorData = mongoose.model("MotorData", motordataSchema);
|
|
|
|
const TankWaterLevel = mongoose.model("TankWaterLevel", tankWaterLevelSchema);
|
|
|
|
const IotData = mongoose.model("IotData", IOttankSchema);
|
|
|
|
const TankConsumptionSchema = mongoose.model("TankConsumptionSchema", tankconsumptionSchema);
|
|
|
|
const TankConsumptionOriginalSchema = mongoose.model("TankConsumptionOriginalSchema", tankconsumptionoriginalSchema);
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
Tank, MotorData,IotData,TankWaterLevel,TankConsumptionSchema,TankConsumptionOriginalSchema
|
|
|
|
}
|
|
|
|
|