feat: add Freedom Trail with trailheads and parking/restroom amenities#450
Conversation
Add the Summit Metro Parks Freedom Trail (Akron, OH) as a linear 'trail'-role POI rendered from pois.geometry (OpenStreetMap-derived, ODbL), plus its 8 official trailheads/access points as point POIs. Add has_parking / has_restrooms amenity flags to pois (mirroring is_ada_accessible / is_bike_friendly): returned by the POI/linear-feature SELECT lists, editable on any POI via the sidebar edit form and the three admin write paths, and shown in the Visitor Information section. Trailheads are marked per the Summit Metro Parks Freedom Trail map. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request adds the Freedom Trail POI and its associated trailheads via a database migration, introducing new has_parking and has_restrooms amenity flags. The backend and frontend are updated to support, query, and edit these new fields. However, the reviewer pointed out that these fields are missing from several admin write paths (such as POST /destinations, POST /pois, POST /linear-features, and PUT /linear-features/:id), which will cause them to be silently ignored during creation or updates.
| 'navigation_latitude', 'navigation_longitude', | ||
| 'property_owner', 'owner_id', 'brief_description', 'era_id', 'historical_description', | ||
| 'primary_activities', 'surface', 'pets', 'cell_signal', 'opening_hours', 'wheelchair', 'fee', 'more_info_link', | ||
| 'has_parking', 'has_restrooms', |
There was a problem hiding this comment.
While has_parking and has_restrooms have been added to the allowed fields for PUT /pois/:id and PUT /destinations/:id, they are missing from several other admin write paths. Specifically, they should be added to:
POST /destinations(around line 298)POST /pois(around line 364)POST /linear-features(around line 2008)PUT /linear-features/:id(around line 2052)
Without these, any attempt to set or update parking/restroom amenities on creation or when editing linear features (like trails) will be silently ignored by the backend.
Summary
trail-role POI, rendered frompois.geometry(OpenStreetMap-derived, ODbL 1.0). ~8.1 mi, Canal District → Kent.has_parking/has_restroomsamenity flags topois(mirroringis_ada_accessible/is_bike_friendly):PUT /pois,PUT /destinations,POST /destinations)Implementation
073_add_freedom_trail.sql— idempotent; adds columns, trail POI + inline geometry, and trailheads. Runs automatically on every container start/deploy.trailrole + linear-feature rendering (same path as river POIs); no new map code.Test plan
./run.sh buildpasses./run.sh testpasses (Gourmand 0 violations)Code review
Gatehouse: 1 medium advisory — pre-existing POI SELECT-clause duplication across endpoints. Justified as out-of-scope (the duplication predates this PR; centralizing it would touch unrelated read endpoints). Tracked for a separate refactor.
🤖 Generated with Claude Code