Yankee-massage.zip

Ask for community feedback on whether this version is an improvement over previous iterations. 3. The Security and Safety Awareness Post

A factual, educational piece titled: “Why You Should Never Download ‘yankee-massage.zip’ – A Case Study in Suspicious File Names” This would include: yankee-massage.zip

| Method | URL | Body / Query | Description | |--------|-----|--------------|-------------| | POST | /api/v1/requests | clientId, durationMin, massageType, lat, lng, maxDistanceM? | Creates a massage_requests row and triggers find_best_therapist . Returns either status:"matched", match:… or status:"failed", reason:"no‑therapist" . | | GET | /api/v1/requests/:id | – | Polling endpoint (if you prefer client‑side polling). Returns current status ( pending , matched , failed ). | | POST | /api/v1/requests/:id/cancel | – | Allows the client to cancel a pending request before a match is made. | | GET | /api/v1/therapists/:id/profile | – | Returns therapist photo, bio, rating, and ETA (computed from distance). Used on the confirmation screen. | Ask for community feedback on whether this version

# Shorter distance → lower penalty (1 m = 0.01 points) distance_penalty = slot.distance_m * 0.01 Returns current status ( pending , matched , failed )

# Lower price → lower penalty price_penalty = slot.hourly_rate_cents / 100