const Schema = require('mongoose').Schema, validator = require('validator'); const location = { gdt: { type: Date, required: true }, // GPS DateTime lat: { type: Number, required: true }, lon: { type: Number, required: true }, alt: { type: Number, default: 0 }, // m inputs: { type: Number, default: 0 }, // input number speed: { type: Number, default: 0 }, // km/h head: { type: Number, default: 0 }, // degree 0-359 temp: { type: Number }, humid: { type: Number }, appRate: { type: Number }, windSpd: { type: Number }, windHdg: { type: Number }, }; const AddressSchema = new Schema({ name: { type: String, required: false }, // Optional name field line1: { type: String, require: false }, line2: { type: String, require: false }, city: { type: String, require: false }, postalCode: { type: String, require: false, alias: 'postal_code' }, state: { type: String, require: false }, // State would be used as Province in some countries country: { type: String, require: true, validate: [validator.isISO31661Alpha2, 'invalid_country_code'], trim: true, uppercase: true, ref: 'Country', // Reference to Country model by code localField: 'country', // Field in this schema foreignField: 'code', // Field in Country schema justOne: true }, phone: { type: String, required: false }, // Optional phone number isBilling: { type: Boolean, default: false } // Flag for the current billing address }); module.exports = { location, AddressSchema }