✨ Added
Query Filters - New property type filters for advanced querying:
- Relation filter: Filter by related pages with
relation("Property").contains(pageId),doesNotContain(),isEmpty(),isNotEmpty() - People filter: Filter by users/assignees with
people("Property").contains(userId),doesNotContain(),isEmpty(),isNotEmpty() - Status filter: Filter by workflow status with
status("Property").equals("Status"),doesNotEqual(),isEmpty(),isNotEmpty() - Unique ID filter: Filter by auto-incrementing IDs with numeric comparisons (
equals(),greaterThan(),lessThan(), etc.) - Files filter: Filter by attachment presence with
files("Property").isEmpty(),isNotEmpty()
Property Types:
- Place property: Full support for location data with
PageProperty.Placeincluding:- Structured access to latitude/longitude coordinates
- Name and address fields
- Convenience accessors:
getPlaceProperty(),getPlaceAsString(),formattedLocation
- Unique ID property: Enhanced with convenience accessors (
getUniqueIdProperty(), properly integrated withgetPlainTextForProperty())
🐛 Fixed
- Unknown property types: Library now gracefully handles property types it doesn't recognize, returning
PageProperty.Unsupportedinstead of failing deserialization
🔧 Changed
- Dependencies: Updated to latest versions of Kotlin, Ktor, and other dependencies
- Gradle: Updated Gradle wrapper to latest version
📊 Statistics
- Test coverage: 514+ unit tests (up from 481)
- New test suites: Integration tests for all new filter types