Moves map marker storage from browser localStorage to a server-side database
table so pins survive cache clears, browser changes, and device switches.
Backend:
- New `map_markers` table with future-proofed columns for routing (marker_type,
route_id, route_order, notes) to avoid a migration when routes are added later
- CRUD endpoints: GET/POST /api/maps/markers, PATCH/DELETE /api/maps/markers/:id
- VineJS validation on create/update
- MapMarker Lucid model
Frontend:
- useMapMarkers hook now fetches from API instead of localStorage
- Marker IDs changed from string (UUID) to number (DB auto-increment)
- API client methods added for all marker operations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>