- Add ID field to CrossingEvent struct for database row ID
- Update GetPortalCrossings to query and return the database id column
- Fix getPortalCrossings handler to populate all response fields:
- ID: database row ID
- PortalID: portal ID from the crossing event
- BlobID: blob identifier
- Direction: a_to_b or b_to_a
- FromZone: source zone name
- ToZone: destination zone name
- Timestamp: crossing timestamp
- Person: BLE identity if available
- Update tests to verify all fields are properly set
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>