Tech tracking controls — On my way / Arrived / Done

On any job they're assigned to, a tech sees three sequential buttons in the Job detail:

1. "I'm on my way" — flips the job status to En Route, starts GPS tracking, generates a public /track link, sends customer a text + email with the link
2. "I've arrived" — flips status to In Progress, stops GPS tracking
3. "Mark complete" — flips status to Completed, ends the tracking link, triggers post-job survey + invoice

GPS behaviour:
• Uses the browser's high-accuracy geolocation
• Pings location only when the tech has moved at least 25 meters AND at least 25 seconds have passed since the last ping (battery-friendly, accurate enough for ETA)
• Stops the moment the tech taps "Arrived" — no background tracking, no privacy creep
• Customer-facing ETA recalculates every ping using Google Routes API live traffic

Permissions:
First time the tech taps "On my way" on a phone, the browser asks for location permission. Approve. Subsequent jobs use the same approval — no re-prompts.

Battery:
Throttling means a typical 30-minute drive across a city is ~30 location pings per job. On a modern phone this is unnoticeable — even on a long day with 8 jobs.

Privacy on day off:
Tracking only runs when a job is in En Route status. The system has no concept of "always tracking" — the only way the tech's location is shared is when they explicitly opt into a job by tapping On my way.