{"shop":{"id":"demo","name":"Hearth & Hound","timeZone":"America/New_York","isDemo":true,"accessCode":""},"staff":[{"id":"be02123c-8c0a-4636-9267-07f1432ae0d6","name":"Jules Park","role":"groomer"},{"id":"4e207e96-f7bd-44dd-875b-7fa6eac75874","name":"Mara Ellison","role":"owner"}],"services":[{"id":"svc_full","name":"Full groom","durationMin":90,"basePriceCents":7500,"priceMode":"coat"},{"id":"svc_bath","name":"Bath & brush","durationMin":60,"basePriceCents":4500,"priceMode":"coat"},{"id":"svc_deshed","name":"Deshed","durationMin":30,"basePriceCents":3500,"priceMode":"coat"},{"id":"svc_nails","name":"Nail trim","durationMin":20,"basePriceCents":1800,"priceMode":"flat"}],"clients":[{"id":"fd40082f-a89e-43a5-8c41-b85c57507884","name":"Chris Adler","phone":"(415) 555-0190","email":"chris.adler@example.com","address":"440 9th Ave, San Francisco","notes":"Missed the last visit. Confirm before you hold the slot.","createdAt":"2026-10-19T04:51:42.667Z"},{"id":"47c74220-a142-4e1f-a500-9738594c76b6","name":"Elena Voss","phone":"(415) 555-0166","email":"elena.voss@example.com","address":"90 Liberty St, San Francisco","notes":"Brings both dogs. Book them back to back, not on top of each other.","createdAt":"2026-10-19T04:51:42.672Z"},{"id":"1924a165-f315-47b1-aa05-fcf211dff945","name":"Priya Shah","phone":"(415) 555-0148","email":"priya.shah@example.com","address":"18 Clement St, San Francisco","notes":"Texts back quickly. Prefers morning drop-off.","createdAt":"2026-10-19T04:51:42.662Z"}],"pets":[{"id":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","clientId":"1924a165-f315-47b1-aa05-fcf211dff945","name":"Maple","species":"dog","breed":"Goldendoodle","coat":"curly","weightLb":42,"behaviorNotes":"Sensitive behind the ears. Pulls a rear leg up if you rush the feet.","createdAt":"2026-10-19T04:51:42.665Z"},{"id":"0875e46a-6843-4adf-b5e7-94dd46231c55","clientId":"47c74220-a142-4e1f-a500-9738594c76b6","name":"Noodle","species":"dog","breed":"Shih Tzu","coat":"long","weightLb":14,"behaviorNotes":"Topknot. Owner wants the face round, not short.","createdAt":"2026-10-19T04:51:42.674Z"},{"id":"6c079709-0c71-4860-b2d3-7384cd697247","clientId":"fd40082f-a89e-43a5-8c41-b85c57507884","name":"Otto","species":"dog","breed":"Labrador","coat":"short","weightLb":74,"behaviorNotes":"Easy. Heavy shed in spring.","createdAt":"2026-10-19T04:51:42.670Z"},{"id":"07baaf4e-d84f-4a58-950a-b1e0f52485ab","clientId":"47c74220-a142-4e1f-a500-9738594c76b6","name":"Pepper","species":"dog","breed":"Shih Tzu","coat":"long","weightLb":13,"behaviorNotes":"Same cut as Noodle. More patient.","createdAt":"2026-10-19T04:51:42.677Z"}],"appointments":[{"id":"bda5a1e3-3727-448e-bf24-d048286cb0ee","clientId":"1924a165-f315-47b1-aa05-fcf211dff945","clientName":"Priya Shah","phone":"(415) 555-0148","email":"priya.shah@example.com","address":"18 Clement St, San Francisco","clientNotes":"Texts back quickly. Prefers morning drop-off.","petId":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","petName":"Maple","breed":"Goldendoodle","coat":"curly","weightLb":42,"species":"dog","behaviorNotes":"Sensitive behind the ears. Pulls a rear leg up if you rush the feet.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-08-10T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"completed","notes":"","risk":"low","createdAt":"2026-10-19T04:51:42.682Z"},{"id":"394e4456-09b3-44d2-9e00-c36d8c8f9031","clientId":"fd40082f-a89e-43a5-8c41-b85c57507884","clientName":"Chris Adler","phone":"(415) 555-0190","email":"chris.adler@example.com","address":"440 9th Ave, San Francisco","clientNotes":"Missed the last visit. Confirm before you hold the slot.","petId":"6c079709-0c71-4860-b2d3-7384cd697247","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-08-24T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"completed","notes":"","risk":"high","createdAt":"2026-10-19T04:51:42.690Z"},{"id":"35543b8c-5634-432d-8d3a-d334c33ff6a8","clientId":"1924a165-f315-47b1-aa05-fcf211dff945","clientName":"Priya Shah","phone":"(415) 555-0148","email":"priya.shah@example.com","address":"18 Clement St, San Francisco","clientNotes":"Texts back quickly. Prefers morning drop-off.","petId":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","petName":"Maple","breed":"Goldendoodle","coat":"curly","weightLb":42,"species":"dog","behaviorNotes":"Sensitive behind the ears. Pulls a rear leg up if you rush the feet.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-09-14T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"completed","notes":"","risk":"low","createdAt":"2026-10-19T04:51:42.686Z"},{"id":"810c2050-4250-402e-9ec5-971d5785fa71","clientId":"fd40082f-a89e-43a5-8c41-b85c57507884","clientName":"Chris Adler","phone":"(415) 555-0190","email":"chris.adler@example.com","address":"440 9th Ave, San Francisco","clientNotes":"Missed the last visit. Confirm before you hold the slot.","petId":"6c079709-0c71-4860-b2d3-7384cd697247","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-05T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"no_show","notes":"","risk":"high","createdAt":"2026-10-19T04:51:42.693Z"},{"id":"920a841c-ae9b-4c64-9c87-b4c8af92db74","clientId":"1924a165-f315-47b1-aa05-fcf211dff945","clientName":"Priya Shah","phone":"(415) 555-0148","email":"priya.shah@example.com","address":"18 Clement St, San Francisco","clientNotes":"Texts back quickly. Prefers morning drop-off.","petId":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","petName":"Maple","breed":"Goldendoodle","coat":"curly","weightLb":42,"species":"dog","behaviorNotes":"Sensitive behind the ears. Pulls a rear leg up if you rush the feet.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-19T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"booked","notes":"Owner asked to keep the teddy bear length.","risk":"low","createdAt":"2026-10-19T04:51:42.725Z"},{"id":"ba945585-a729-4595-8894-cd295cbfb1f6","clientId":"fd40082f-a89e-43a5-8c41-b85c57507884","clientName":"Chris Adler","phone":"(415) 555-0190","email":"chris.adler@example.com","address":"440 9th Ave, San Francisco","clientNotes":"Missed the last visit. Confirm before you hold the slot.","petId":"6c079709-0c71-4860-b2d3-7384cd697247","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-19T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"booked","notes":"","risk":"high","createdAt":"2026-10-19T04:51:42.729Z"},{"id":"8caed065-ddb7-4f2d-9827-949d459dc276","clientId":"47c74220-a142-4e1f-a500-9738594c76b6","clientName":"Elena Voss","phone":"(415) 555-0166","email":"elena.voss@example.com","address":"90 Liberty St, San Francisco","clientNotes":"Brings both dogs. Book them back to back, not on top of each other.","petId":"0875e46a-6843-4adf-b5e7-94dd46231c55","petName":"Noodle","breed":"Shih Tzu","coat":"long","weightLb":14,"species":"dog","behaviorNotes":"Topknot. Owner wants the face round, not short.","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","staffName":"Mara Ellison","serviceId":"svc_bath","serviceName":"Bath & brush","startAt":"2026-10-20T14:00:00.000Z","durationMin":70,"priceCents":5000,"status":"booked","notes":"","risk":"low","createdAt":"2026-10-19T04:51:42.732Z"}],"reminders":[{"id":"2ddd81b5-614c-4c2e-a787-4a370fd08cc9","appointmentId":"ba945585-a729-4595-8894-cd295cbfb1f6","channel":"email","status":"sent","recipient":"chris.adler@example.com","subject":"Otto's groom is coming up","body":"Chris, Otto's full groom with Mara Ellison is Monday, October 19 at 1:00 PM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristlegrooming.com/unsubscribe","provider":"email-outbox","createdAt":"2026-10-19T06:19:46.251Z"},{"id":"8f9758ad-1a92-4cb0-880b-754a979a96d6","appointmentId":"ba945585-a729-4595-8894-cd295cbfb1f6","channel":"sms","status":"stubbed","recipient":"(415) 555-0190","subject":"Otto's groom is coming up","body":"Chris, Otto's full groom with Mara Ellison is Monday, October 19 at 1:00 PM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristlegrooming.com/unsubscribe","provider":"sms-stub","createdAt":"2026-10-19T06:19:46.251Z"},{"id":"46663a46-c163-4dea-9bd3-a09f1d310503","appointmentId":"920a841c-ae9b-4c64-9c87-b4c8af92db74","channel":"sms","status":"stubbed","recipient":"(415) 555-0148","subject":"Maple's groom is coming up","body":"Priya, Maple's full groom with Mara Ellison is Monday, October 19 at 9:30 AM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristlegrooming.com/unsubscribe","provider":"sms-stub","createdAt":"2026-10-19T06:19:46.250Z"},{"id":"d9ef8c85-a09a-403d-b658-02a8fb9dcdbc","appointmentId":"920a841c-ae9b-4c64-9c87-b4c8af92db74","channel":"email","status":"sent","recipient":"priya.shah@example.com","subject":"Maple's groom is coming up","body":"Priya, Maple's full groom with Mara Ellison is Monday, October 19 at 9:30 AM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristlegrooming.com/unsubscribe","provider":"email-outbox","createdAt":"2026-10-19T06:19:46.249Z"}],"payments":[{"id":"be640c03-82db-42f3-a28e-be787d148cad","appointmentId":"bda5a1e3-3727-448e-bf24-d048286cb0ee","amountCents":9200,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-19T04:51:42.696Z"},{"id":"8b2fb00c-ce73-4d09-84c4-27bf130447d9","appointmentId":"35543b8c-5634-432d-8d3a-d334c33ff6a8","amountCents":9200,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-19T04:51:42.699Z"},{"id":"d6d996cb-60c6-4e8b-927f-de00d4afd20b","appointmentId":"394e4456-09b3-44d2-9e00-c36d8c8f9031","amountCents":8100,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-19T04:51:42.702Z"}],"notes":[{"id":"344cfd70-e431-4ba5-9636-0b0d36c8f5a2","appointmentId":"35543b8c-5634-432d-8d3a-d334c33ff6a8","petId":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","summary":"Maple (Goldendoodle, curly coat): Full groom. Light mats behind the ears.","coatCondition":"Mats called out in the observations.","behavior":"Easy on the table.","servicesPerformed":"Full groom","cautionsForNextVisit":"Book enough time to work through mats. Do not shave without asking.","observations":"Light mats behind the ears. Same fluffy length. Calm on the table.","provider":"bristle-notes","createdAt":"2026-10-19T04:51:42.714Z"}],"suggestions":[{"id":"a0ce1828-8f47-4632-984d-5fb3325a7dbb","sourceAppointmentId":"35543b8c-5634-432d-8d3a-d334c33ff6a8","petId":"a44c627b-40c4-4721-870f-ddfd40b3d1a5","staffId":"4e207e96-f7bd-44dd-875b-7fa6eac75874","serviceId":"svc_full","suggestedStartAt":"2026-10-19T13:30:00.000Z","durationMin":110,"priceCents":9200,"intervalDays":35,"noShowRisk":"low","reason":"Next visit in 35 days, from the curly-coat default. There are not two gaps yet to use this dog's own spacing. No-show risk is low.","status":"dismissed","acceptedAppointmentId":null,"provider":"bristle-schedule","createdAt":"2026-10-19T04:51:42.714Z"}]}