import Model from "./model.js"; import { coordinatesToGeoJson } from "../../helpers/geoJson.helper.js"; import dayjs from "dayjs"; // Create export const createLocation = async (data) => { const geoJson = coordinatesToGeoJson(data.coordinates); return await Model.create({ ...data, coordinates: geoJson, createdOn: dayjs().toISOString(), }); }; // Read (Get by ID) export const getLocationById = async (id) => { return await Model.findById(id); }; // Read (Get by Query) export const getLocationByQuery = async (query) => { return await Model.findOne(query); }; // Read (Get by Radius) export const getLocationByRadius = async (radius) => { return await Model.find(query); }; // Read (Get all) export const getAllLocations = async () => { return await Model.find(); }; // Update export const updateLocation = async (id, data) => { return await Model.findByIdAndUpdate(id, data, { new: true }); }; // Aggregate export const aggregateLocation = async (pipeline) => { return await Model.aggregate(pipeline); };