Property Filter Service
Overview
Property filters define which properties are filterable within a category. They link a property to a category so the frontend knows which filters to show when browsing that category.
Related to:
- Properties — property definitions
- Categories — categories that expose filters
All operations are tenant-aware.
Database tables
catalog.PropertyFilter
Endpoints
GET
/api/v1/PropertyFilters/property/{propertyId}
Returns all property filters for a given property.
Route parameters:
propertyId(long, required) - property identifier
Response:
List<PropertyFilterModel>
Authorization:
[AllowAnonymous]— no token required
GET
/api/v1/PropertyFilters/category/{categoryId}
Returns all property filters for a given category.
Route parameters:
categoryId(long, required) - category identifier
Response:
List<PropertyFilterModel>
Authorization:
[AllowAnonymous]— no token required
GET
/api/v1/PropertyFilters/{id}
Returns a single property filter by its identifier.
Route parameters:
id(long, required) - property filter identifier
Behavior:
- Returns
404if not found
Response:
PropertyFilterModel
Authorization:
[AllowAnonymous]— no token required
POST
/api/v1/PropertyFilters
Creates a new property filter (links a property to a category).
Request body (PropertyFilterModel):
PropertyId(long, required) - property to make filterableCategoryId(long, required) - category to attach the filter toSortOrder(int?, optional) - display order
Response:
201 Created—PropertyFilterModel
Authorization:
- Requires Bearer Token
- Permission:
FullManage
PUT
/api/v1/PropertyFilters/{id}
Updates an existing property filter.
Route parameters:
id(long, required) - property filter identifier
Request body (PropertyFilterModel):
- All fields updated as provided
Response:
200 OK—PropertyFilterModel
Authorization:
- Requires Bearer Token
- Permission:
FullManage
DELETE
/api/v1/PropertyFilters/{id}
Deletes a property filter by its identifier.
Route parameters:
id(long, required) - property filter identifier
Response:
204 No Content
Authorization:
- Requires Bearer Token
- Permission:
FullManage
Notes
- Deleting a property filter does not delete the property or category
- All state-changing operations are audited
- Internal errors are logged but not exposed to clients