// Application-Detail: AppId, zoneName, latitude, longitude, spray(on/off), targetRate, AppRate, temperature, humidity, gpsdatetime const mongoose = require('mongoose'), Schema = mongoose.Schema; const schema = new Schema({ appId: { type: Schema.Types.ObjectId, ref: 'Application', required: false }, // TODO: to be removed later fileId: { type: Schema.Types.ObjectId, ref: 'AppFile', required: true }, // Data from 3rd-byte-header 08/05 records gpsTime: { type: Number, default: 0.0 }, lat: { type: Number, required: true }, lon: { type: Number, required: true }, tslu: { type: Number, default: 0 }, llnum: { type: Number, default: 0 }, xTrack: { type: Number, default: 0 }, grSpeed: { type: Number, default: 0 }, alt: { type: Number, default: 0 }, timeAdv: { type: Number, default: 0 }, utmX: { type: Number, default: 0 }, utmY: { type: Number, default: 0 }, swath: { type: Number, default: 0 }, noAC: { type: Number, default: 0 }, sprayStat: { type: Number, alias: 'spray', default: 0 }, head: { type: Number, default: 0 }, stdHdop: { type: Number, default: 0 }, satsIn: { type: Number, default: 0 }, lminApp: { type: Number, default: 0 }, lminReq: { type: Number, default: 0 }, lhaReq: { type: Number, default: 0 }, sens: { type: Number, default: 0 }, // Flow sensor or Flow controller type. i.e.: 107 is AgFlow calcodeFreq: { type: Number, default: 0 }, // fmId: { type: Number, default: 0 }, sprayHeight: { type: Number, default: 0 }, windSpd: { type: Number, default: 0 }, windDir: { type: Number, default: 0 }, temp: { type: Number, default: 0 }, humid: { type: Number, default: 0 }, driftX: { type: Number, default: 0 }, driftY: { type: Number, default: 0 }, depositX: { type: Number, default: 0 }, depositY: { type: Number, default: 0 }, // Data from RPM 3rd-byte-header 06 records applicRate: { type: Number, default: 0 }, rpm: { type: [Number] }, // For RPM values from granular FC psi: { type: Number, default: 0 }, // Booms pressure (psi) when using a pressure sensor gpsAlt: { type: Number, default: 0 }, radarAlt: { type: Number, default: 0 }, raserAlt: { type: Number, default: 0 }, weight: { type: Number, default: 0 }, // Kg createdDate: { type: Date, default: Date.now } }); module.exports = mongoose.model('Application_Detail', schema);