{
  "exportedAt": "2026-06-12T11:39:28.657Z",
  "note": "This is the StudioFlow demo studio dataset. Sign up to export your own.",
  "studio": {
    "id": "demo-studio",
    "name": "North & Pine Photography",
    "slug": "north-pine",
    "plan": "SOLO",
    "subscriptionStatus": "active",
    "trialEndsAt": "2026-04-01T00:00:00.000Z",
    "graceUntil": null,
    "currentPeriodEnd": "2026-11-01T00:00:00.000Z",
    "seats": 1,
    "settings": {
      "autoReplyEnabled": true,
      "autoReplySubject": "We got your note — North & Pine",
      "autoReplyBody": "Hi {{first_name}},\n\nThank you for reaching out about your {{shoot_type}} — your date is in our calendar as a hold while we talk.\n\nOur full pricing guide is attached, and Casey will reply personally within a few hours (usually faster). If your date is flexible, say so — weekday and off-season dates open up a lot of options.\n\nTalk soon,\nNorth & Pine Photography\nPortland, OR",
      "replyToEmail": "hello@northandpine.com"
    }
  },
  "clients": [
    {
      "id": "cl-whitfield",
      "name": "Avery & Dana Whitfield",
      "kind": "Couple",
      "email": "avery.whitfield@gmail.com",
      "phone": "(503) 555-0142",
      "notes": "Met at Cathedral Park — want the bridge in everything. Album upsell likely.",
      "since": "2026-03-09",
      "shoots": 2,
      "lifetime": 525000,
      "lastShoot": "Engagement — Sep 26, 2026",
      "sample": true
    },
    {
      "id": "cl-juniper",
      "name": "Juniper Hotel PDX",
      "kind": "Company",
      "email": "marketing@juniperpdx.com",
      "phone": "(503) 555-0177",
      "notes": "Quarterly refresh cadence. Invoice to accounts@ — net 30.",
      "since": "2024-01-12",
      "shoots": 6,
      "lifetime": 1940000,
      "lastShoot": "Suites refresh — Aug 28, 2026",
      "sample": true
    },
    {
      "id": "cl-nakamura",
      "name": "The Nakamuras",
      "kind": "Family",
      "email": "kenji.nakamura@gmail.com",
      "phone": null,
      "notes": "Fall session every year since 2023. Kids: Mia (7), Ren (4).",
      "since": "2023-09-02",
      "shoots": 4,
      "lifetime": 208000,
      "lastShoot": "Fall session — Sep 6, 2026",
      "sample": true
    },
    {
      "id": "cl-tidepool",
      "name": "Tidepool Swimwear",
      "kind": "Company",
      "email": "creative@tidepoolswim.com",
      "phone": "(458) 555-0190",
      "notes": "Lookbooks need a 2nd shooter. Usage license per campaign.",
      "since": "2025-02-20",
      "shoots": 3,
      "lifetime": 1280000,
      "lastShoot": "SS26 lookbook — Oct 8, 2026",
      "sample": true
    },
    {
      "id": "cl-kowalski",
      "name": "Etta & Sam Kowalski",
      "kind": "Couple",
      "email": "etta.kowalski@hey.com",
      "phone": "(971) 555-0118",
      "notes": "Eloped at Smith Rock. Left a 5★ review — album upsell open.",
      "since": "2025-11-15",
      "shoots": 2,
      "lifetime": 362000,
      "lastShoot": "Elopement — Aug 15, 2026",
      "sample": true
    },
    {
      "id": "cl-okafor",
      "name": "Grace Okafor",
      "kind": "Individual",
      "email": "grace@graceokafor.com",
      "phone": null,
      "notes": "Annual headshot refresh. Hair & makeup arrives 9:30am.",
      "since": "2024-06-10",
      "shoots": 3,
      "lifetime": 149000,
      "lastShoot": "Headshots — Oct 12, 2026",
      "sample": true
    },
    {
      "id": "cl-alderash",
      "name": "Alder & Ash Goods",
      "kind": "Company",
      "email": "studio@alderandash.com",
      "phone": "(503) 555-0163",
      "notes": "Workshop story format — they post the full set to their journal.",
      "since": "2026-04-03",
      "shoots": 1,
      "lifetime": 160000,
      "lastShoot": "Workshop story — Sep 30, 2026",
      "sample": true
    },
    {
      "id": "cl-halloran",
      "name": "Sofia & Drew Halloran",
      "kind": "Couple",
      "email": "sofia.halloran@gmail.com",
      "phone": "(503) 555-0129",
      "notes": "Wedding Sep 12. Edit running long — flagged in pipeline.",
      "since": "2026-01-22",
      "shoots": 1,
      "lifetime": 510000,
      "lastShoot": "Wedding — Sep 12, 2026",
      "sample": true
    },
    {
      "id": "cl-tran",
      "name": "Maya & Jordan Tran",
      "kind": "Couple",
      "email": "maya.tran@outlook.com",
      "phone": null,
      "notes": "Inquiry via IG bio link — replied in 14 minutes.",
      "since": "2026-10-02",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-cascara",
      "name": "Cascara Coffee Co.",
      "kind": "Company",
      "email": "hello@cascaracoffee.co",
      "phone": null,
      "notes": "Wants quarterly content days at the roastery.",
      "since": "2026-09-28",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-natarajan",
      "name": "Priya Natarajan",
      "kind": "Individual",
      "email": "priya.nat@gmail.com",
      "phone": null,
      "notes": "Referred by the Okafors. Maternity — Sauvie Island.",
      "since": "2026-09-30",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-hollisjune",
      "name": "Hollis & June",
      "kind": "Couple",
      "email": "hollisandjune@proton.me",
      "phone": null,
      "notes": "Cannon Beach elopement — asked about sunrise permits.",
      "since": "2026-10-01",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-webb",
      "name": "Lena & Marcus Webb",
      "kind": "Couple",
      "email": "lena.webb@gmail.com",
      "phone": null,
      "notes": "Viewed proposal 3× — date held to Friday.",
      "since": "2026-09-22",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-fernforage",
      "name": "Fern + Forage",
      "kind": "Company",
      "email": "kitchen@fernandforage.com",
      "phone": null,
      "notes": "Comparing two packages.",
      "since": "2026-09-18",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-anderson",
      "name": "The Andersons",
      "kind": "Family",
      "email": "kate.anderson@gmail.com",
      "phone": null,
      "notes": "Golden-hour mini slot at Hoyt Arboretum.",
      "since": "2026-09-25",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    },
    {
      "id": "cl-bishop",
      "name": "Nina & Tom Bishop",
      "kind": "Couple",
      "email": "nina.bishop@gmail.com",
      "phone": "(503) 555-0151",
      "notes": "1,840 frames — cull by Friday.",
      "since": "2026-02-14",
      "shoots": 1,
      "lifetime": 420000,
      "lastShoot": "Wedding — Sep 26, 2026",
      "sample": true
    },
    {
      "id": "cl-vega",
      "name": "Marisol Vega",
      "kind": "Individual",
      "email": "marisol@marisolvega.art",
      "phone": null,
      "notes": "Editorial portraits — retouch round 1 of 2.",
      "since": "2026-08-30",
      "shoots": 1,
      "lifetime": 48000,
      "lastShoot": "Portraits — Sep 21, 2026",
      "sample": true
    },
    {
      "id": "cl-castillo",
      "name": "Rowan & Eli Castillo",
      "kind": "Couple",
      "email": "rowan.castillo@gmail.com",
      "phone": null,
      "notes": "Sunset engagement at Cathedral Park — wedding inquiry likely for 2027.",
      "since": "2026-09-14",
      "shoots": 0,
      "lifetime": 0,
      "lastShoot": null,
      "sample": true
    }
  ],
  "bookings": [
    {
      "id": "bk-1068",
      "stage": "INQUIRY",
      "clientId": "cl-tran",
      "clientName": "Maya & Jordan Tran",
      "shootType": "Wedding",
      "title": "Tran wedding — The Evergreen",
      "date": "2027-06-12",
      "dateLabel": "Jun 12, 2027",
      "venue": "The Evergreen",
      "packageName": null,
      "value": 520000,
      "flag": "new",
      "notes": "Via IG bio link · replied in 14m",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1067",
      "stage": "INQUIRY",
      "clientId": "cl-cascara",
      "clientName": "Cascara Coffee Co.",
      "shootType": "Brand",
      "title": "Cascara quarterly content",
      "date": null,
      "dateLabel": "Jul 2026",
      "venue": "Roastery, SE Division",
      "packageName": null,
      "value": 240000,
      "flag": null,
      "notes": "Wants quarterly content days",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1066",
      "stage": "INQUIRY",
      "clientId": "cl-natarajan",
      "clientName": "Priya Natarajan",
      "shootType": "Maternity",
      "title": "Natarajan maternity",
      "date": null,
      "dateLabel": "Aug 2026",
      "venue": "Sauvie Island",
      "packageName": null,
      "value": 65000,
      "flag": null,
      "notes": "Referred by the Okafors",
      "position": 3,
      "sample": true
    },
    {
      "id": "bk-1065",
      "stage": "INQUIRY",
      "clientId": "cl-hollisjune",
      "clientName": "Hollis & June",
      "shootType": "Elopement",
      "title": "Hollis & June — Cannon Beach",
      "date": "2026-09-19",
      "dateLabel": "Sep 19, 2026",
      "venue": "Cannon Beach",
      "packageName": null,
      "value": 310000,
      "flag": "hot",
      "notes": "Asked about sunrise permits",
      "position": 4,
      "sample": true
    },
    {
      "id": "bk-1063",
      "stage": "PROPOSAL",
      "clientId": "cl-webb",
      "clientName": "Lena & Marcus Webb",
      "shootType": "Wedding",
      "title": "Webb wedding — Opal 28",
      "date": "2027-05-08",
      "dateLabel": "May 8, 2027",
      "venue": "Opal 28",
      "packageName": null,
      "value": 460000,
      "flag": null,
      "notes": "Viewed 3× · date held to Fri",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1062",
      "stage": "PROPOSAL",
      "clientId": "cl-fernforage",
      "clientName": "Fern + Forage",
      "shootType": "Brand",
      "title": "Fern + Forage menu story",
      "date": "2026-07-14",
      "dateLabel": "Jul 14, 2026",
      "venue": "Studio · NE Alberta",
      "packageName": null,
      "value": 185000,
      "flag": null,
      "notes": "Comparing two packages",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1061",
      "stage": "PROPOSAL",
      "clientId": "cl-anderson",
      "clientName": "The Andersons",
      "shootType": "Family",
      "title": "Anderson golden-hour minis",
      "date": "2026-10-25",
      "dateLabel": "Oct 25, 2026",
      "venue": "Hoyt Arboretum",
      "packageName": null,
      "value": 48000,
      "flag": null,
      "notes": "Golden-hour mini slot",
      "position": 3,
      "sample": true
    },
    {
      "id": "bk-1042",
      "stage": "BOOKED",
      "clientId": "cl-whitfield",
      "clientName": "Avery & Dana Whitfield",
      "shootType": "Wedding",
      "title": "Whitfield wedding — Cathedral Park",
      "date": "2026-10-17",
      "dateLabel": "Oct 17, 2026",
      "venue": "Cathedral Park",
      "packageName": "Full Day — North Light Collection",
      "value": 480000,
      "flag": "hot",
      "notes": "Deposit paid · timeline drafted",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1058",
      "stage": "BOOKED",
      "clientId": "cl-castillo",
      "clientName": "Rowan & Eli Castillo",
      "shootType": "Engagement",
      "title": "Castillo engagement — sunset",
      "date": "2026-10-03",
      "dateLabel": "Oct 3, 2026",
      "venue": "Cathedral Park",
      "packageName": "Golden Hour Session",
      "value": 72000,
      "flag": null,
      "notes": "Sunset slot confirmed",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1057",
      "stage": "BOOKED",
      "clientId": "cl-tidepool",
      "clientName": "Tidepool Swimwear",
      "shootType": "Brand",
      "title": "Tidepool SS26 lookbook",
      "date": "2026-10-08",
      "dateLabel": "Oct 8–9, 2026",
      "venue": "Oceanside, OR",
      "packageName": "Brand Story — Two Day",
      "value": 540000,
      "flag": null,
      "notes": "2-day lookbook · 2nd shooter req",
      "position": 3,
      "sample": true
    },
    {
      "id": "bk-1054",
      "stage": "BOOKED",
      "clientId": "cl-okafor",
      "clientName": "Grace Okafor",
      "shootType": "Portrait",
      "title": "Okafor headshot refresh",
      "date": "2026-10-12",
      "dateLabel": "Oct 12, 2026",
      "venue": "Studio · NE Alberta",
      "packageName": "Studio Portrait Session",
      "value": 54000,
      "flag": null,
      "notes": "Headshot refresh · hair 9:30am",
      "position": 4,
      "sample": true
    },
    {
      "id": "bk-1051",
      "stage": "SHOT",
      "clientId": "cl-bishop",
      "clientName": "Nina & Tom Bishop",
      "shootType": "Wedding",
      "title": "Bishop wedding — Leach Garden",
      "date": "2026-09-26",
      "dateLabel": "Sep 26, 2026",
      "venue": "Leach Botanical Garden",
      "packageName": "Full Day — North Light Collection",
      "value": 420000,
      "flag": null,
      "notes": "1,840 frames · cull by Fri",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1050",
      "stage": "SHOT",
      "clientId": "cl-alderash",
      "clientName": "Alder & Ash Goods",
      "shootType": "Brand",
      "title": "Alder & Ash workshop story",
      "date": "2026-09-30",
      "dateLabel": "Sep 30, 2026",
      "venue": "Workshop, St. Johns",
      "packageName": "Brand Story — Half Day",
      "value": 160000,
      "flag": null,
      "notes": "Selects due to client Tue",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1048",
      "stage": "EDITING",
      "clientId": "cl-halloran",
      "clientName": "Sofia & Drew Halloran",
      "shootType": "Wedding",
      "title": "Halloran wedding — Castaway",
      "date": "2026-09-12",
      "dateLabel": "Sep 12, 2026",
      "venue": "Castaway Portland",
      "packageName": "Full Day — North Light Collection",
      "value": 510000,
      "flag": "overdue",
      "notes": "62% edited · due Oct 10",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1047",
      "stage": "EDITING",
      "clientId": "cl-vega",
      "clientName": "Marisol Vega",
      "shootType": "Portrait",
      "title": "Vega editorial portraits",
      "date": "2026-09-21",
      "dateLabel": "Sep 21, 2026",
      "venue": "Studio · NE Alberta",
      "packageName": "Studio Portrait Session",
      "value": 48000,
      "flag": null,
      "notes": "Retouch round 1 of 2",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1044",
      "stage": "DELIVERED",
      "clientId": "cl-nakamura",
      "clientName": "The Nakamuras",
      "shootType": "Family",
      "title": "Nakamura fall session",
      "date": "2026-09-06",
      "dateLabel": "Sep 6, 2026",
      "venue": "Mt. Tabor Park",
      "packageName": "Family Session",
      "value": 52000,
      "flag": null,
      "notes": "Gallery opened 11× · balance sent",
      "position": 1,
      "sample": true
    },
    {
      "id": "bk-1043",
      "stage": "DELIVERED",
      "clientId": "cl-juniper",
      "clientName": "Juniper Hotel PDX",
      "shootType": "Brand",
      "title": "Juniper suites refresh",
      "date": "2026-08-28",
      "dateLabel": "Aug 28, 2026",
      "venue": "On location",
      "packageName": "Brand Story — Full Day",
      "value": 380000,
      "flag": null,
      "notes": "Print license attached",
      "position": 2,
      "sample": true
    },
    {
      "id": "bk-1040",
      "stage": "PAID",
      "clientId": "cl-kowalski",
      "clientName": "Etta & Sam Kowalski",
      "shootType": "Elopement",
      "title": "Kowalski elopement — Smith Rock",
      "date": "2026-08-15",
      "dateLabel": "Aug 15, 2026",
      "venue": "Smith Rock",
      "packageName": "Elopement Story",
      "value": 290000,
      "flag": null,
      "notes": "5★ review in · album upsell open",
      "position": 1,
      "sample": true
    }
  ],
  "inquiries": [
    {
      "id": "inq-1",
      "bookingId": "bk-1068",
      "name": "Maya Tran",
      "email": "maya.tran@outlook.com",
      "message": "Hi! We're getting married at The Evergreen next June and your Cathedral Park work stopped us mid-scroll. Are you open for June 12, 2027? We'd love full-day coverage.",
      "source": "IG bio link",
      "respondedAt": "2026-10-02T21:04:00.000Z",
      "createdAt": "2026-10-02T20:50:00.000Z"
    },
    {
      "id": "inq-2",
      "bookingId": "bk-1067",
      "name": "Dario Reyes — Cascara Coffee",
      "email": "hello@cascaracoffee.co",
      "message": "We're refreshing our brand and need quarterly content days at the roastery — menu, people, process. Do you do retainers?",
      "source": "Lead form",
      "respondedAt": "2026-09-28T16:20:00.000Z",
      "createdAt": "2026-09-28T14:02:00.000Z"
    },
    {
      "id": "inq-3",
      "bookingId": "bk-1066",
      "name": "Priya Natarajan",
      "email": "priya.nat@gmail.com",
      "message": "Grace Okafor sent me! Due in late August — would love a Sauvie Island session in the 32–34 week window.",
      "source": "Referral",
      "respondedAt": "2026-09-30T18:45:00.000Z",
      "createdAt": "2026-09-30T17:58:00.000Z"
    },
    {
      "id": "inq-4",
      "bookingId": "bk-1065",
      "name": "Hollis Carter",
      "email": "hollisandjune@proton.me",
      "message": "We're eloping at Cannon Beach on Sep 19 — sunrise, just us and our dog. Do you know if Haystack Rock needs permits that early?",
      "source": "Lead form",
      "respondedAt": null,
      "createdAt": "2026-10-01T07:31:00.000Z"
    }
  ],
  "packages": [
    {
      "id": "pkg-northlight",
      "name": "Full Day — North Light Collection",
      "coverageHours": 9,
      "deliverables": [
        "9 hours coverage, two photographers",
        "Online gallery with print release",
        "Sneak peeks within 48 hours",
        "Timeline planning session"
      ],
      "basePrice": 420000,
      "addOns": [
        {
          "name": "Engagement session",
          "price": 45000
        },
        {
          "name": "Linen album (30 spreads)",
          "price": 89000
        },
        {
          "name": "Second-day brunch coverage",
          "price": 60000
        }
      ]
    },
    {
      "id": "pkg-elopement",
      "name": "Elopement Story",
      "coverageHours": 4,
      "deliverables": [
        "4 hours coverage, one photographer",
        "Location + permit scouting",
        "Online gallery with print release",
        "Sneak peeks within 48 hours"
      ],
      "basePrice": 240000,
      "addOns": [
        {
          "name": "Extra coverage hour",
          "price": 40000
        },
        {
          "name": "Super-8 film add-on",
          "price": 65000
        }
      ]
    },
    {
      "id": "pkg-brand-half",
      "name": "Brand Story — Half Day",
      "coverageHours": 4,
      "deliverables": [
        "4 hours on location",
        "40 edited frames with usage license",
        "Shot-list collaboration",
        "72-hour delivery"
      ],
      "basePrice": 160000,
      "addOns": [
        {
          "name": "Full usage buyout",
          "price": 80000
        },
        {
          "name": "BTS reel cutdown",
          "price": 35000
        }
      ]
    },
    {
      "id": "pkg-portrait",
      "name": "Studio Portrait Session",
      "coverageHours": 2,
      "deliverables": [
        "2 hours in studio",
        "12 retouched selects",
        "Hair & makeup coordination",
        "Same-week delivery"
      ],
      "basePrice": 48000,
      "addOns": [
        {
          "name": "Additional retouched select",
          "price": 4500
        }
      ]
    }
  ],
  "proposals": [
    {
      "id": "demo-whitfield",
      "bookingId": "bk-1042",
      "clientName": "Avery & Dana Whitfield",
      "packages": [
        {
          "id": "pkg-northlight",
          "name": "Full Day — North Light Collection",
          "coverageHours": 9,
          "deliverables": [
            "9 hours coverage, two photographers",
            "Online gallery with print release",
            "Sneak peeks within 48 hours",
            "Timeline planning session"
          ],
          "basePrice": 420000,
          "addOns": [
            {
              "name": "Engagement session",
              "price": 45000
            },
            {
              "name": "Linen album (30 spreads)",
              "price": 89000
            },
            {
              "name": "Second-day brunch coverage",
              "price": 60000
            }
          ]
        },
        {
          "id": "pkg-elopement",
          "name": "Elopement Story",
          "coverageHours": 4,
          "deliverables": [
            "4 hours coverage, one photographer",
            "Location + permit scouting",
            "Online gallery with print release",
            "Sneak peeks within 48 hours"
          ],
          "basePrice": 240000,
          "addOns": [
            {
              "name": "Extra coverage hour",
              "price": 40000
            },
            {
              "name": "Super-8 film add-on",
              "price": 65000
            }
          ]
        }
      ],
      "status": "ACCEPTED",
      "dateHoldUntil": "2026-03-16",
      "acceptedAt": "2026-03-12T19:40:00.000Z",
      "createdAt": "2026-03-11T18:00:00.000Z"
    },
    {
      "id": "demo-webb",
      "bookingId": "bk-1063",
      "clientName": "Lena & Marcus Webb",
      "packages": [
        {
          "id": "pkg-northlight",
          "name": "Full Day — North Light Collection",
          "coverageHours": 9,
          "deliverables": [
            "9 hours coverage, two photographers",
            "Online gallery with print release",
            "Sneak peeks within 48 hours",
            "Timeline planning session"
          ],
          "basePrice": 420000,
          "addOns": [
            {
              "name": "Engagement session",
              "price": 45000
            },
            {
              "name": "Linen album (30 spreads)",
              "price": 89000
            },
            {
              "name": "Second-day brunch coverage",
              "price": 60000
            }
          ]
        },
        {
          "id": "pkg-elopement",
          "name": "Elopement Story",
          "coverageHours": 4,
          "deliverables": [
            "4 hours coverage, one photographer",
            "Location + permit scouting",
            "Online gallery with print release",
            "Sneak peeks within 48 hours"
          ],
          "basePrice": 240000,
          "addOns": [
            {
              "name": "Extra coverage hour",
              "price": 40000
            },
            {
              "name": "Super-8 film add-on",
              "price": 65000
            }
          ]
        }
      ],
      "status": "VIEWED",
      "dateHoldUntil": "2026-10-09",
      "acceptedAt": null,
      "createdAt": "2026-10-04T16:30:00.000Z"
    },
    {
      "id": "demo-fernforage",
      "bookingId": "bk-1062",
      "clientName": "Fern + Forage",
      "packages": [
        {
          "id": "pkg-brand-half",
          "name": "Brand Story — Half Day",
          "coverageHours": 4,
          "deliverables": [
            "4 hours on location",
            "40 edited frames with usage license",
            "Shot-list collaboration",
            "72-hour delivery"
          ],
          "basePrice": 160000,
          "addOns": [
            {
              "name": "Full usage buyout",
              "price": 80000
            },
            {
              "name": "BTS reel cutdown",
              "price": 35000
            }
          ]
        }
      ],
      "status": "SENT",
      "dateHoldUntil": null,
      "acceptedAt": null,
      "createdAt": "2026-10-05T11:10:00.000Z"
    }
  ],
  "contracts": [
    {
      "id": "demo-whitfield-contract",
      "bookingId": "bk-1042",
      "title": "Photography Services Agreement — North & Pine Photography",
      "body": "PHOTOGRAPHY SERVICES AGREEMENT\n\nThis agreement is between North & Pine Photography (\"the Studio\") and Avery & Dana Whitfield (\"the Client\") for wedding photography services.\n\n1. EVENT & COVERAGE\nThe Studio will provide photography coverage for the Client's wedding on Saturday, October 17, 2026 at Cathedral Park, Portland OR, under the \"Full Day — North Light Collection\" package.\n\n2. FEES & PAYMENT SCHEDULE\nTotal fee: $4,800. A non-refundable booking deposit of $1,440 (30%) is due on signing and reserves the date. The remaining balance is due 14 days before the event date.\n\n3. DELIVERY\nThe Studio will deliver an edited online gallery within 6 weeks of the event. Sneak peeks (a small edited selection) are delivered within one week. RAW files are not included.\n\n4. PRINT RELEASE\nThe Client receives a personal-use print release for all delivered images. Commercial use requires a separate license.\n\n5. CANCELLATION & RESCHEDULING\nIf the Client cancels, the deposit is retained. One reschedule to an available date within 12 months is included at no charge.\n\n6. CREATIVE LICENSE\nThe Client has reviewed the Studio's portfolio and engages the Studio for its editorial style. Final edit selection, color treatment, and culling are at the Studio's discretion.\n\n7. LIABILITY\nThe Studio's total liability is limited to the amount paid under this agreement. In the unlikely event of equipment failure, illness, or other circumstances beyond the Studio's control, liability is limited to a full refund.\n\n8. MODEL RELEASE\nThe Client grants the Studio permission to use delivered images for portfolio and marketing purposes unless a privacy addendum is requested in writing.\n\n— — —\nContract templates are starting points, not legal advice — have your own counsel review.",
      "status": "SIGNED",
      "signerName": "Avery Whitfield",
      "signedAt": "2026-03-12T19:51:00.000Z",
      "signedIp": "73.25.118.40",
      "signedUserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 19_2 like Mac OS X) Safari/605.1.15"
    },
    {
      "id": "demo-webb-contract",
      "bookingId": "bk-1063",
      "title": "Photography Services Agreement — North & Pine Photography",
      "body": "PHOTOGRAPHY SERVICES AGREEMENT\n\nThis agreement is between North & Pine Photography (\"the Studio\") and Lena & Marcus Webb (\"the Client\") for wedding photography services.\n\n1. EVENT & COVERAGE\nThe Studio will provide photography coverage for the Client's wedding on Saturday, May 8, 2027 at Opal 28, Portland OR, under the \"Full Day — North Light Collection\" package.\n\n2. FEES & PAYMENT SCHEDULE\nTotal fee: $4,600. A non-refundable booking deposit of $1,380 (30%) is due on signing and reserves the date. The remaining balance is due 14 days before the event date.\n\n3. DELIVERY\nThe Studio will deliver an edited online gallery within 6 weeks of the event. Sneak peeks (a small edited selection) are delivered within one week. RAW files are not included.\n\n4. PRINT RELEASE\nThe Client receives a personal-use print release for all delivered images. Commercial use requires a separate license.\n\n5. CANCELLATION & RESCHEDULING\nIf the Client cancels, the deposit is retained. One reschedule to an available date within 12 months is included at no charge.\n\n6. CREATIVE LICENSE\nThe Client has reviewed the Studio's portfolio and engages the Studio for its editorial style. Final edit selection, color treatment, and culling are at the Studio's discretion.\n\n7. LIABILITY\nThe Studio's total liability is limited to the amount paid under this agreement. In the unlikely event of equipment failure, illness, or other circumstances beyond the Studio's control, liability is limited to a full refund.\n\n8. MODEL RELEASE\nThe Client grants the Studio permission to use delivered images for portfolio and marketing purposes unless a privacy addendum is requested in writing.\n\n— — —\nContract templates are starting points, not legal advice — have your own counsel review.",
      "status": "SENT",
      "signerName": null,
      "signedAt": null,
      "signedIp": null,
      "signedUserAgent": null
    }
  ],
  "invoices": [
    {
      "id": "inv-2046",
      "bookingId": "bk-1042",
      "number": "INV-2046",
      "label": "Booking deposit (30%)",
      "amount": 144000,
      "due": "2026-03-14",
      "status": "PAID",
      "paidAt": "2026-03-12"
    },
    {
      "id": "inv-2047",
      "bookingId": "bk-1042",
      "number": "INV-2047",
      "label": "Balance",
      "amount": 336000,
      "due": "2026-10-03",
      "status": "SCHEDULED",
      "paidAt": null
    },
    {
      "id": "inv-2040",
      "bookingId": "bk-1044",
      "number": "INV-2040",
      "label": "Balance",
      "amount": 26000,
      "due": "2026-10-02",
      "status": "SENT",
      "paidAt": null
    },
    {
      "id": "inv-2039",
      "bookingId": "bk-1043",
      "number": "INV-2039",
      "label": "Balance (net 30)",
      "amount": 190000,
      "due": "2026-10-08",
      "status": "SENT",
      "paidAt": null
    },
    {
      "id": "inv-2035",
      "bookingId": "bk-1048",
      "number": "INV-2035",
      "label": "Balance",
      "amount": 255000,
      "due": "2026-09-26",
      "status": "PAST_DUE",
      "paidAt": null
    },
    {
      "id": "inv-2031",
      "bookingId": "bk-1040",
      "number": "INV-2031",
      "label": "Balance",
      "amount": 203000,
      "due": "2026-08-29",
      "status": "PAID",
      "paidAt": "2026-08-27"
    },
    {
      "id": "inv-2030",
      "bookingId": "bk-1040",
      "number": "INV-2030",
      "label": "Booking deposit (30%)",
      "amount": 87000,
      "due": "2026-05-30",
      "status": "PAID",
      "paidAt": "2026-05-28"
    },
    {
      "id": "inv-2044",
      "bookingId": "bk-1057",
      "number": "INV-2044",
      "label": "Booking deposit (50%)",
      "amount": 270000,
      "due": "2026-09-24",
      "status": "PAID",
      "paidAt": "2026-09-22"
    }
  ],
  "galleries": [
    {
      "id": "gal-whitfield",
      "bookingId": "bk-1042",
      "slug": "whitfield",
      "title": "Avery & Dana — Engagement",
      "clientName": "Avery & Dana Whitfield",
      "pin": "4821",
      "photoCount": 64,
      "favorites": 18,
      "opens": 23,
      "status": "LIVE",
      "coverUrl": "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/00aef30d-49f9-470c-accc-929ed8f59ee3.jpg",
      "photos": [
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/00aef30d-49f9-470c-accc-929ed8f59ee3.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/526c9c95-323f-432c-8b77-8d2ef340172c.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/5912ae5d-0e42-4626-bab6-e4a94bc8970a.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/47f6bfbd-2037-4a50-9974-7c4b9182a999.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/b2e36ed5-cf1f-43dc-9112-4371254415fb.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/f040ffd7-59b0-4f7c-98ac-e2a73e219ff6.jpg"
      ],
      "shotLabel": "Sep 26, 2026",
      "deliveredLabel": "Oct 1, 2026"
    },
    {
      "id": "gal-nakamura",
      "bookingId": "bk-1044",
      "slug": "nakamura-fall",
      "title": "The Nakamuras — Fall Session",
      "clientName": "The Nakamuras",
      "pin": "7305",
      "photoCount": 52,
      "favorites": 12,
      "opens": 11,
      "status": "LIVE",
      "coverUrl": "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/5912ae5d-0e42-4626-bab6-e4a94bc8970a.jpg",
      "photos": [
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/5912ae5d-0e42-4626-bab6-e4a94bc8970a.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/b2e36ed5-cf1f-43dc-9112-4371254415fb.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/526c9c95-323f-432c-8b77-8d2ef340172c.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/f040ffd7-59b0-4f7c-98ac-e2a73e219ff6.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/47f6bfbd-2037-4a50-9974-7c4b9182a999.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/00aef30d-49f9-470c-accc-929ed8f59ee3.jpg"
      ],
      "shotLabel": "Sep 6, 2026",
      "deliveredLabel": "Sep 18, 2026"
    },
    {
      "id": "gal-juniper",
      "bookingId": "bk-1043",
      "slug": "juniper-suites",
      "title": "Juniper Hotel — Suites Refresh",
      "clientName": "Juniper Hotel PDX",
      "pin": "1158",
      "photoCount": 88,
      "favorites": 31,
      "opens": 19,
      "status": "LIVE",
      "coverUrl": "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/47f6bfbd-2037-4a50-9974-7c4b9182a999.jpg",
      "photos": [
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/47f6bfbd-2037-4a50-9974-7c4b9182a999.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/526c9c95-323f-432c-8b77-8d2ef340172c.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/f040ffd7-59b0-4f7c-98ac-e2a73e219ff6.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/00aef30d-49f9-470c-accc-929ed8f59ee3.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/5912ae5d-0e42-4626-bab6-e4a94bc8970a.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/b2e36ed5-cf1f-43dc-9112-4371254415fb.jpg"
      ],
      "shotLabel": "Aug 28, 2026",
      "deliveredLabel": "Sep 9, 2026"
    },
    {
      "id": "gal-kowalski",
      "bookingId": "bk-1040",
      "slug": "kowalski-smith-rock",
      "title": "Etta & Sam — Smith Rock Elopement",
      "clientName": "Etta & Sam Kowalski",
      "pin": "9924",
      "photoCount": 412,
      "favorites": 96,
      "opens": 41,
      "status": "EXPIRING",
      "coverUrl": "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/b2e36ed5-cf1f-43dc-9112-4371254415fb.jpg",
      "photos": [
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/b2e36ed5-cf1f-43dc-9112-4371254415fb.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/00aef30d-49f9-470c-accc-929ed8f59ee3.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/47f6bfbd-2037-4a50-9974-7c4b9182a999.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/5912ae5d-0e42-4626-bab6-e4a94bc8970a.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/f040ffd7-59b0-4f7c-98ac-e2a73e219ff6.jpg",
        "https://askmybook-rag.s3.us-west-2.amazonaws.com/assets/31mcFGAh9hf3IiT2NWUZ3MQuc1cP6VmG/526c9c95-323f-432c-8b77-8d2ef340172c.jpg"
      ],
      "shotLabel": "Aug 15, 2026",
      "deliveredLabel": "Sep 2, 2026"
    },
    {
      "id": "gal-vega",
      "bookingId": "bk-1047",
      "slug": "vega-portraits",
      "title": "Marisol Vega — Editorial Portraits",
      "clientName": "Marisol Vega",
      "pin": "—",
      "photoCount": 0,
      "favorites": 0,
      "opens": 0,
      "status": "ARCHIVED",
      "coverUrl": null,
      "photos": [],
      "shotLabel": "Sep 21, 2026",
      "deliveredLabel": "—"
    }
  ],
  "activity": [
    {
      "id": "act-1",
      "bookingId": "bk-1068",
      "kind": "auto",
      "message": "Auto-reply with pricing guide sent to Maya & Jordan Tran",
      "meta": "22 seconds after inquiry",
      "createdAt": "2026-10-02T20:50:22.000Z"
    },
    {
      "id": "act-2",
      "bookingId": "bk-1068",
      "kind": "studio",
      "message": "Casey replied personally to the Tran inquiry",
      "meta": "Response time 14 minutes",
      "createdAt": "2026-10-02T21:04:00.000Z"
    },
    {
      "id": "act-3",
      "bookingId": "bk-1063",
      "kind": "client",
      "message": "Lena Webb viewed the proposal (3rd time)",
      "meta": "Date held until Friday",
      "createdAt": "2026-10-06T19:22:00.000Z"
    },
    {
      "id": "act-4",
      "bookingId": "bk-1057",
      "kind": "auto",
      "message": "Deposit invoice INV-2044 marked paid · receipt sent",
      "meta": "Tidepool Swimwear · $2,700",
      "createdAt": "2026-09-22T15:10:00.000Z"
    },
    {
      "id": "act-5",
      "bookingId": "bk-1048",
      "kind": "auto",
      "message": "Delivery deadline at risk — Halloran gallery due Oct 10",
      "meta": "62% edited",
      "createdAt": "2026-10-05T08:00:00.000Z"
    },
    {
      "id": "act-6",
      "bookingId": "bk-1044",
      "kind": "client",
      "message": "The Nakamuras opened their gallery (11th time)",
      "meta": "3 new favorites",
      "createdAt": "2026-10-04T22:41:00.000Z"
    },
    {
      "id": "act-7",
      "bookingId": "bk-1042",
      "kind": "studio",
      "message": "Whitfield final timeline call scheduled for Oct 15",
      "meta": null,
      "createdAt": "2026-10-03T17:05:00.000Z"
    },
    {
      "id": "act-8",
      "bookingId": "bk-1040",
      "kind": "client",
      "message": "Etta Kowalski left a 5★ review",
      "meta": "Album upsell nurture started",
      "createdAt": "2026-10-01T16:30:00.000Z"
    }
  ]
}