61 lines
1003 B
JavaScript
61 lines
1003 B
JavaScript
import { model, Schema, Types } from "mongoose";
|
|
import { locationSchema } from "../../helpers";
|
|
|
|
const geofenceSchema = new Schema({
|
|
venue: {
|
|
type: Types.ObjectId,
|
|
required: false,
|
|
ref: "venue",
|
|
},
|
|
assignment: {
|
|
type: Types.ObjectId,
|
|
required: false,
|
|
ref: "assignment",
|
|
},
|
|
action: {
|
|
type: String,
|
|
required: false,
|
|
},
|
|
visit: {
|
|
type: Types.ObjectId,
|
|
ref: "visit",
|
|
},
|
|
});
|
|
|
|
const schema = new Schema({
|
|
user: {
|
|
type: Types.ObjectId,
|
|
required: true,
|
|
ref: "user",
|
|
},
|
|
coordinates: locationSchema,
|
|
createdOn: {
|
|
type: Date,
|
|
required: true,
|
|
},
|
|
battery: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
event: {
|
|
type: String,
|
|
required: false,
|
|
},
|
|
activity: {
|
|
type: String,
|
|
required: false,
|
|
},
|
|
heading: {
|
|
type: Number,
|
|
required: false,
|
|
},
|
|
geofence: {
|
|
type: geofenceSchema,
|
|
required: false,
|
|
},
|
|
});
|
|
|
|
schema.index({ coordinates: "2dsphere" });
|
|
|
|
export default model("location", schema);
|