@@ -254,6 +254,15 @@ class Query(
254254 */
255255 fun createdAfter (value : String ) = Query (" createdAfter" , null , listOf (value)).toJson()
256256
257+ /* *
258+ * Filter resources where document was created between start and end dates (inclusive).
259+ *
260+ * @param start The start date value.
261+ * @param end The end date value.
262+ * @returns The query string.
263+ */
264+ fun createdBetween (start : String , end : String ) = Query (" createdBetween" , null , listOf (start, end)).toJson()
265+
257266 /* *
258267 * Filter resources where document was updated before date.
259268 *
@@ -270,6 +279,15 @@ class Query(
270279 */
271280 fun updatedAfter (value : String ) = Query (" updatedAfter" , null , listOf (value)).toJson()
272281
282+ /* *
283+ * Filter resources where document was updated between start and end dates (inclusive).
284+ *
285+ * @param start The start date value.
286+ * @param end The end date value.
287+ * @returns The query string.
288+ */
289+ fun updatedBetween (start : String , end : String ) = Query (" updatedBetween" , null , listOf (start, end)).toJson()
290+
273291 /* *
274292 * Combine multiple queries using logical OR operator.
275293 *
@@ -286,6 +304,122 @@ class Query(
286304 */
287305 fun and (queries : List <String >) = Query (" and" , null , queries.map { it.fromJson<Query >() }).toJson()
288306
307+ /* *
308+ * Filter resources where attribute is at a specific distance from the given coordinates.
309+ *
310+ * @param attribute The attribute to filter on.
311+ * @param values The coordinate values.
312+ * @param distance The distance value.
313+ * @param meters Whether the distance is in meters.
314+ * @returns The query string.
315+ */
316+ fun distanceEqual (attribute : String , values : List <Any >, distance : Number , meters : Boolean = true) = Query (" distanceEqual" , attribute, listOf (listOf (values, distance, meters))).toJson()
317+
318+ /* *
319+ * Filter resources where attribute is not at a specific distance from the given coordinates.
320+ *
321+ * @param attribute The attribute to filter on.
322+ * @param values The coordinate values.
323+ * @param distance The distance value.
324+ * @param meters Whether the distance is in meters.
325+ * @returns The query string.
326+ */
327+ fun distanceNotEqual (attribute : String , values : List <Any >, distance : Number , meters : Boolean = true) = Query (" distanceNotEqual" , attribute, listOf (listOf (values, distance, meters))).toJson()
328+
329+ /* *
330+ * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.
331+ *
332+ * @param attribute The attribute to filter on.
333+ * @param values The coordinate values.
334+ * @param distance The distance value.
335+ * @param meters Whether the distance is in meters.
336+ * @returns The query string.
337+ */
338+ fun distanceGreaterThan (attribute : String , values : List <Any >, distance : Number , meters : Boolean = true) = Query (" distanceGreaterThan" , attribute, listOf (listOf (values, distance, meters))).toJson()
339+
340+ /* *
341+ * Filter resources where attribute is at a distance less than the specified value from the given coordinates.
342+ *
343+ * @param attribute The attribute to filter on.
344+ * @param values The coordinate values.
345+ * @param distance The distance value.
346+ * @param meters Whether the distance is in meters.
347+ * @returns The query string.
348+ */
349+ fun distanceLessThan (attribute : String , values : List <Any >, distance : Number , meters : Boolean = true) = Query (" distanceLessThan" , attribute, listOf (listOf (values, distance, meters))).toJson()
350+
351+ /* *
352+ * Filter resources where attribute intersects with the given geometry.
353+ *
354+ * @param attribute The attribute to filter on.
355+ * @param values The coordinate values.
356+ * @returns The query string.
357+ */
358+ fun intersects (attribute : String , values : List <Any >) = Query (" intersects" , attribute, listOf (values)).toJson()
359+
360+ /* *
361+ * Filter resources where attribute does not intersect with the given geometry.
362+ *
363+ * @param attribute The attribute to filter on.
364+ * @param values The coordinate values.
365+ * @returns The query string.
366+ */
367+ fun notIntersects (attribute : String , values : List <Any >) = Query (" notIntersects" , attribute, listOf (values)).toJson()
368+
369+ /* *
370+ * Filter resources where attribute crosses the given geometry.
371+ *
372+ * @param attribute The attribute to filter on.
373+ * @param values The coordinate values.
374+ * @returns The query string.
375+ */
376+ fun crosses (attribute : String , values : List <Any >) = Query (" crosses" , attribute, listOf (values)).toJson()
377+
378+ /* *
379+ * Filter resources where attribute does not cross the given geometry.
380+ *
381+ * @param attribute The attribute to filter on.
382+ * @param values The coordinate values.
383+ * @returns The query string.
384+ */
385+ fun notCrosses (attribute : String , values : List <Any >) = Query (" notCrosses" , attribute, listOf (values)).toJson()
386+
387+ /* *
388+ * Filter resources where attribute overlaps with the given geometry.
389+ *
390+ * @param attribute The attribute to filter on.
391+ * @param values The coordinate values.
392+ * @returns The query string.
393+ */
394+ fun overlaps (attribute : String , values : List <Any >) = Query (" overlaps" , attribute, listOf (values)).toJson()
395+
396+ /* *
397+ * Filter resources where attribute does not overlap with the given geometry.
398+ *
399+ * @param attribute The attribute to filter on.
400+ * @param values The coordinate values.
401+ * @returns The query string.
402+ */
403+ fun notOverlaps (attribute : String , values : List <Any >) = Query (" notOverlaps" , attribute, listOf (values)).toJson()
404+
405+ /* *
406+ * Filter resources where attribute touches the given geometry.
407+ *
408+ * @param attribute The attribute to filter on.
409+ * @param values The coordinate values.
410+ * @returns The query string.
411+ */
412+ fun touches (attribute : String , values : List <Any >) = Query (" touches" , attribute, listOf (values)).toJson()
413+
414+ /* *
415+ * Filter resources where attribute does not touch the given geometry.
416+ *
417+ * @param attribute The attribute to filter on.
418+ * @param values The coordinate values.
419+ * @returns The query string.
420+ */
421+ fun notTouches (attribute : String , values : List <Any >) = Query (" notTouches" , attribute, listOf (values)).toJson()
422+
289423 /* *
290424 * Parse the value to a list of values.
291425 *
0 commit comments