{"shop":{"id":"demo","name":"Hearth & Hound","timeZone":"America/New_York","isDemo":true,"accessCode":""},"staff":[{"id":"3f4982ce-5856-4c43-8726-0d43da77c347","name":"Jules Park","role":"groomer"},{"id":"fe263174-4b3b-415b-8d3e-4336afca1746","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":"7a00ac0b-df56-49df-8c79-0d7b6975373c","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-21T09:59:47.684Z"},{"id":"384ae6ac-f92c-4b2c-a46e-91a59d8a7f0f","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-21T09:59:47.689Z"},{"id":"3feaa06e-a92d-4bf5-a481-f2f672a82b91","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-21T09:59:47.678Z"}],"pets":[{"id":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","clientId":"3feaa06e-a92d-4bf5-a481-f2f672a82b91","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-21T09:59:47.682Z"},{"id":"6be88d9b-d6e6-47d8-8d02-09feb316c1f5","clientId":"384ae6ac-f92c-4b2c-a46e-91a59d8a7f0f","name":"Noodle","species":"dog","breed":"Shih Tzu","coat":"long","weightLb":14,"behaviorNotes":"Topknot. Owner wants the face round, not short.","createdAt":"2026-10-21T09:59:47.692Z"},{"id":"0ae8fa7e-3591-4841-bccb-b9db28887c55","clientId":"7a00ac0b-df56-49df-8c79-0d7b6975373c","name":"Otto","species":"dog","breed":"Labrador","coat":"short","weightLb":74,"behaviorNotes":"Easy. Heavy shed in spring.","createdAt":"2026-10-21T09:59:47.687Z"},{"id":"486c6c8e-bd74-4b12-8759-26ef4bf352f7","clientId":"384ae6ac-f92c-4b2c-a46e-91a59d8a7f0f","name":"Pepper","species":"dog","breed":"Shih Tzu","coat":"long","weightLb":13,"behaviorNotes":"Same cut as Noodle. More patient.","createdAt":"2026-10-21T09:59:47.695Z"}],"appointments":[{"id":"3417ee37-7982-43b9-8132-9c1ade64edaf","clientId":"3feaa06e-a92d-4bf5-a481-f2f672a82b91","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":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","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":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-08-12T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"completed","notes":"","risk":"low","createdAt":"2026-10-21T09:59:47.700Z"},{"id":"2505a8dd-9f71-4352-af97-1f7a8c0638e3","clientId":"7a00ac0b-df56-49df-8c79-0d7b6975373c","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":"0ae8fa7e-3591-4841-bccb-b9db28887c55","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-08-26T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"completed","notes":"","risk":"high","createdAt":"2026-10-21T09:59:47.709Z"},{"id":"84dd730b-9303-45c3-8283-f117d018478e","clientId":"3feaa06e-a92d-4bf5-a481-f2f672a82b91","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":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","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":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-09-16T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"completed","notes":"","risk":"low","createdAt":"2026-10-21T09:59:47.705Z"},{"id":"39b4608b-cd19-474f-a2e5-3f1113e4794d","clientId":"7a00ac0b-df56-49df-8c79-0d7b6975373c","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":"0ae8fa7e-3591-4841-bccb-b9db28887c55","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-07T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"no_show","notes":"","risk":"high","createdAt":"2026-10-21T09:59:47.713Z"},{"id":"0ac40546-2ae8-46bf-8862-6ed1de564aec","clientId":"3feaa06e-a92d-4bf5-a481-f2f672a82b91","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":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","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":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-21T13:30:00.000Z","durationMin":110,"priceCents":9200,"status":"booked","notes":"Owner asked to keep the teddy bear length.","risk":"low","createdAt":"2026-10-21T09:59:47.739Z"},{"id":"f1d5a90a-15a2-4320-a064-ce9f7531d272","clientId":"7a00ac0b-df56-49df-8c79-0d7b6975373c","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":"0ae8fa7e-3591-4841-bccb-b9db28887c55","petName":"Otto","breed":"Labrador","coat":"short","weightLb":74,"species":"dog","behaviorNotes":"Easy. Heavy shed in spring.","staffId":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_full","serviceName":"Full groom","startAt":"2026-10-21T17:00:00.000Z","durationMin":90,"priceCents":8100,"status":"booked","notes":"","risk":"high","createdAt":"2026-10-21T09:59:47.743Z"},{"id":"89f29759-b626-4b48-80fd-ce4159becf44","clientId":"384ae6ac-f92c-4b2c-a46e-91a59d8a7f0f","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":"6be88d9b-d6e6-47d8-8d02-09feb316c1f5","petName":"Noodle","breed":"Shih Tzu","coat":"long","weightLb":14,"species":"dog","behaviorNotes":"Topknot. Owner wants the face round, not short.","staffId":"fe263174-4b3b-415b-8d3e-4336afca1746","staffName":"Mara Ellison","serviceId":"svc_bath","serviceName":"Bath & brush","startAt":"2026-10-22T14:00:00.000Z","durationMin":70,"priceCents":5000,"status":"booked","notes":"","risk":"low","createdAt":"2026-10-21T09:59:47.746Z"}],"reminders":[{"id":"742bea02-3fea-4c83-bcab-5b624766f8b9","appointmentId":"f1d5a90a-15a2-4320-a064-ce9f7531d272","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 Wednesday, October 21 at 1:00 PM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristle-1--spotbench-prod.us-east4.hosted.app/unsubscribe","provider":"sms-stub","createdAt":"2026-10-21T10:07:29.979Z"},{"id":"b5377a8e-6554-4f23-8bdc-f396e8fb685d","appointmentId":"f1d5a90a-15a2-4320-a064-ce9f7531d272","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 Wednesday, October 21 at 1:00 PM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristle-1--spotbench-prod.us-east4.hosted.app/unsubscribe","provider":"email-outbox","createdAt":"2026-10-21T10:07:29.978Z"},{"id":"c2834f05-fee3-47f5-bc0e-65122a2328ad","appointmentId":"0ac40546-2ae8-46bf-8862-6ed1de564aec","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 Wednesday, October 21 at 9:30 AM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristle-1--spotbench-prod.us-east4.hosted.app/unsubscribe","provider":"email-outbox","createdAt":"2026-10-21T10:07:29.977Z"},{"id":"ab60c1d5-6d58-41af-8591-326bec5357d6","appointmentId":"0ac40546-2ae8-46bf-8862-6ed1de564aec","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 Wednesday, October 21 at 9:30 AM. Reply if you need a different time. — Hearth & Hound Unsubscribe: https://bristle-1--spotbench-prod.us-east4.hosted.app/unsubscribe","provider":"sms-stub","createdAt":"2026-10-21T10:07:29.977Z"}],"payments":[{"id":"59484950-1598-4dc4-957a-ece7b851a237","appointmentId":"3417ee37-7982-43b9-8132-9c1ade64edaf","amountCents":9200,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-21T09:59:47.716Z"},{"id":"35649fa6-8a47-4303-8d6f-876642211061","appointmentId":"84dd730b-9303-45c3-8283-f117d018478e","amountCents":9200,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-21T09:59:47.719Z"},{"id":"df9ba056-fe9f-40ca-938a-e75d44c3e05d","appointmentId":"2505a8dd-9f71-4352-af97-1f7a8c0638e3","amountCents":8100,"tipCents":0,"method":"cash","note":"","createdAt":"2026-10-21T09:59:47.722Z"}],"notes":[{"id":"b6c6053f-a1be-45b7-bc6f-5abb97244734","appointmentId":"84dd730b-9303-45c3-8283-f117d018478e","petId":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","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-21T09:59:47.732Z"}],"suggestions":[{"id":"6d1e4678-2265-4dbf-a17e-701d92c15d1b","sourceAppointmentId":"84dd730b-9303-45c3-8283-f117d018478e","petId":"eb7f5517-b5f4-4420-8416-d89ea430e1bd","staffId":"fe263174-4b3b-415b-8d3e-4336afca1746","serviceId":"svc_full","suggestedStartAt":"2026-10-21T13: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-21T09:59:47.733Z"}]}