ADM-OPERATION-550 - Return a paginated list of Operations

Retrieves Operations visible to the caller, with filters and sorting.

Feature flag
- Available only when OPERATIONS_ENABLED is ON (otherwise 403).

Access control
- dj-client = OPERATOR → sees every Operation (all stores).
- dj-client = ACCOUNT → sees Operations where ownerId = callerUserId and the caller still has right OPERATIONS_READ.

Filters
- AND between different filter keys, OR between values of the same key.
- Unknown values are ignored.

Store scoping
- If the dj-store header is provided:
- OPERATOR: results restricted to that store (no membership constraint).
- ACCOUNT: results restricted to that store only if the caller is attached to that store; otherwise 403.
- If the dj-store header is omitted:
- The tenant default store is used as fallback.
- OPERATOR: results restricted to the tenant default store.
- ACCOUNT: results restricted to the tenant default store only if the caller is attached to it; otherwise 403.

Locale handling
- Optional locale selects the locale used to render localized fields (e.g., name).
- The provided locale must belong to the allowed locales of the store bound to the Operation.
- If the provided locale is unknown for that store, the store default locale is returned (fallback).

Sorting
- Default is createdAt|desc (newest first).
- Multiple sort criteria are supported and applied in order (first wins).
- Allowed properties: createdAt, startDate, endDate, name.
- Directions: asc, desc.

ID Type Handling:
- Optional idType query param allows choosing between internal and external identifiers.

Language
Click Try It! to start a request and see the response here!