{
  "at": "2026-10-30T12:11:25.964553+00:00",
  "baseline_commit": "1cf797ee69be63c21a62a6c47d7f3eaf794a2429",
  "baseline_zip_sha256": "6a8277a4647fe80a6c1b11da34ccbaa08164c736a18627e3bf706600fb4ac205",
  "setup_layer": "Explicit local TestClient fixtures before browser use",
  "setup_is_browser_evidence": false,
  "new_passwords_or_customer_staff_accounts_created": false,
  "main_job": {
    "id": "d2e0305544b4716f2f44a1417667c758",
    "customer_id": "80fef0eb330a39fae1ee3dddbaa25ff5"
  },
  "monthly_job": {
    "id": "255893a8db40b5ebf8c05e152ac711b9",
    "customer_id": "ea30e5b280a34e54aaf5aaeed048acfc"
  },
  "people": [
    {
      "id": "4f1c08062af36f32094ebee6eb0b1fe4",
      "name": "Alex QA",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    },
    {
      "id": "fd360a618287955dc105e33b3f56252f",
      "name": "Blair QA",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    },
    {
      "id": "b26b7d7f6cdb02fae9182081385a190e",
      "name": "Casey QA",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    },
    {
      "id": "dd086eb2c09a75f33e23052ae58708b2",
      "name": "Retired QA",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    }
  ],
  "conflict_booking": {
    "id": "1fd05324fb36839f6e25a1eefab981b9",
    "kind": "unavailable",
    "job_id": null,
    "title": "Alex QA unavailable",
    "resource_ids": [
      "4f1c08062af36f32094ebee6eb0b1fe4"
    ],
    "resource_snapshot": [
      {
        "id": "4f1c08062af36f32094ebee6eb0b1fe4",
        "name": "Alex QA",
        "colour": "#245648"
      }
    ],
    "whole_team": 0,
    "all_day": 0,
    "start_date": "2026-11-09",
    "end_date": "2026-11-09",
    "start_time": "09:30",
    "end_time": "10:30",
    "start_fold": null,
    "end_fold": null,
    "start_utc": "2026-11-09T09:30:00+00:00",
    "end_utc": "2026-11-09T10:30:00+00:00",
    "note": "Private invented booking note",
    "version": 1,
    "archived": 0,
    "created_at": "2026-10-30T12:11:25+00:00",
    "updated_at": "2026-10-30T12:11:25+00:00"
  },
  "protected_job": {
    "id": "030a91e3f84c5b96395ab6649ba51b36",
    "customer_id": "7a4a1b492c16afceaf700002374004a9"
  },
  "protected_people": [
    {
      "id": "887fbd90fbca760147743caae28ba075",
      "name": "Worker 0",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    },
    {
      "id": "771123fc33dbe5f61eea6d249b9bf490",
      "name": "Worker 1",
      "role": "Installer",
      "hourly_cost_pence": 2000,
      "colour": "#245648",
      "version": 1,
      "archived": 0,
      "created_at": "2026-10-30T12:11:25+00:00",
      "updated_at": "2026-10-30T12:11:25+00:00"
    }
  ],
  "protected_contract": {
    "id": "ec0a006df51f75f20bb1dc34871bc969",
    "kind": "job",
    "job_id": "030a91e3f84c5b96395ab6649ba51b36",
    "customer_id": "7a4a1b492c16afceaf700002374004a9",
    "name": "Protected history QA",
    "service_label": "",
    "note": "",
    "state": "active",
    "version": 2,
    "created_at": "2026-10-30T12:11:25+00:00",
    "updated_at": "2026-10-30T12:11:25+00:00",
    "rules": [
      {
        "id": "1cffa17a357d062a543d267cab6bfc5f",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "revision": 1,
        "effective_from": "2026-10-19",
        "content": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "author_id": "oak",
        "membership_id": "f59e5ceb8e859053f3cfd0f1e24e9ddc",
        "created_at": "2026-10-30T12:11:25+00:00"
      }
    ],
    "blocks": [],
    "occurrences": [
      {
        "id": "5512fbe201d259330f526897bd2d975b",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "nominal_date": "2026-10-19",
        "original_rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_snapshot": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "booking_id": "f7fb432cba1e9e2e6b25e7469e8f87ff",
        "state": "active",
        "overridden": 0,
        "exclusion_ids": [],
        "reason": "Owner-reviewed generate",
        "version": 1,
        "created_at": "2026-10-30T12:11:25+00:00",
        "updated_at": "2026-10-30T12:11:25+00:00",
        "booking": {
          "id": "f7fb432cba1e9e2e6b25e7469e8f87ff",
          "kind": "job",
          "job_id": "030a91e3f84c5b96395ab6649ba51b36",
          "title": "Protected history QA",
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "resource_snapshot": [
            {
              "id": "887fbd90fbca760147743caae28ba075",
              "name": "Worker 0",
              "colour": "#245648"
            }
          ],
          "whole_team": 0,
          "all_day": 0,
          "start_date": "2026-10-19",
          "end_date": "2026-10-19",
          "start_time": "09:00",
          "end_time": "10:00",
          "start_fold": null,
          "end_fold": null,
          "start_utc": "2026-10-19T08:00:00+00:00",
          "end_utc": "2026-10-19T09:00:00+00:00",
          "note": "",
          "version": 1,
          "archived": 0,
          "created_at": "2026-10-30T12:11:25+00:00",
          "updated_at": "2026-10-30T12:11:25+00:00"
        }
      },
      {
        "id": "b87815d20c591f6c085c58c418b0b7aa",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "nominal_date": "2026-10-26",
        "original_rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_snapshot": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "booking_id": "bc4c119d17e234579b43342254d671d6",
        "state": "active",
        "overridden": 0,
        "exclusion_ids": [],
        "reason": "Owner-reviewed generate",
        "version": 1,
        "created_at": "2026-10-30T12:11:25+00:00",
        "updated_at": "2026-10-30T12:11:25+00:00",
        "booking": {
          "id": "bc4c119d17e234579b43342254d671d6",
          "kind": "job",
          "job_id": "030a91e3f84c5b96395ab6649ba51b36",
          "title": "Protected history QA",
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "resource_snapshot": [
            {
              "id": "887fbd90fbca760147743caae28ba075",
              "name": "Worker 0",
              "colour": "#245648"
            }
          ],
          "whole_team": 0,
          "all_day": 0,
          "start_date": "2026-10-26",
          "end_date": "2026-10-26",
          "start_time": "09:00",
          "end_time": "10:00",
          "start_fold": null,
          "end_fold": null,
          "start_utc": "2026-10-26T09:00:00+00:00",
          "end_utc": "2026-10-26T10:00:00+00:00",
          "note": "",
          "version": 1,
          "archived": 0,
          "created_at": "2026-10-30T12:11:25+00:00",
          "updated_at": "2026-10-30T12:11:25+00:00"
        }
      },
      {
        "id": "9dd27223d5da30d67d6c959b5100bc8e",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "nominal_date": "2026-11-02",
        "original_rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_snapshot": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "booking_id": "c51ee014fa0a0e0b1af140336507782f",
        "state": "active",
        "overridden": 0,
        "exclusion_ids": [],
        "reason": "Owner-reviewed generate",
        "version": 1,
        "created_at": "2026-10-30T12:11:25+00:00",
        "updated_at": "2026-10-30T12:11:25+00:00",
        "booking": {
          "id": "c51ee014fa0a0e0b1af140336507782f",
          "kind": "job",
          "job_id": "030a91e3f84c5b96395ab6649ba51b36",
          "title": "Protected history QA",
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "resource_snapshot": [
            {
              "id": "887fbd90fbca760147743caae28ba075",
              "name": "Worker 0",
              "colour": "#245648"
            }
          ],
          "whole_team": 0,
          "all_day": 0,
          "start_date": "2026-11-02",
          "end_date": "2026-11-02",
          "start_time": "09:00",
          "end_time": "10:00",
          "start_fold": null,
          "end_fold": null,
          "start_utc": "2026-11-02T09:00:00+00:00",
          "end_utc": "2026-11-02T10:00:00+00:00",
          "note": "",
          "version": 1,
          "archived": 0,
          "created_at": "2026-10-30T12:11:25+00:00",
          "updated_at": "2026-10-30T12:11:25+00:00"
        }
      },
      {
        "id": "254b5a038f2af3ab67dfaff4d11ad656",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "nominal_date": "2026-11-09",
        "original_rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_snapshot": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "booking_id": "82b2f79c0fec7080a5af9adb1a370ca4",
        "state": "active",
        "overridden": 0,
        "exclusion_ids": [],
        "reason": "Owner-reviewed generate",
        "version": 1,
        "created_at": "2026-10-30T12:11:25+00:00",
        "updated_at": "2026-10-30T12:11:25+00:00",
        "booking": {
          "id": "82b2f79c0fec7080a5af9adb1a370ca4",
          "kind": "job",
          "job_id": "030a91e3f84c5b96395ab6649ba51b36",
          "title": "Protected history QA",
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "resource_snapshot": [
            {
              "id": "887fbd90fbca760147743caae28ba075",
              "name": "Worker 0",
              "colour": "#245648"
            }
          ],
          "whole_team": 0,
          "all_day": 0,
          "start_date": "2026-11-09",
          "end_date": "2026-11-09",
          "start_time": "09:00",
          "end_time": "10:00",
          "start_fold": null,
          "end_fold": null,
          "start_utc": "2026-11-09T09:00:00+00:00",
          "end_utc": "2026-11-09T10:00:00+00:00",
          "note": "",
          "version": 1,
          "archived": 0,
          "created_at": "2026-10-30T12:11:25+00:00",
          "updated_at": "2026-10-30T12:11:25+00:00"
        }
      },
      {
        "id": "1d342bed53d9ef82a330172778bab269",
        "contract_id": "ec0a006df51f75f20bb1dc34871bc969",
        "nominal_date": "2026-11-16",
        "original_rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_id": "1cffa17a357d062a543d267cab6bfc5f",
        "rule_snapshot": {
          "frequency": "weekly",
          "anchor_date": "2026-10-19",
          "until_date": "2026-11-30",
          "weekdays": [
            0
          ],
          "month_day": null,
          "month_policy": null,
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "whole_team": false,
          "all_day": false,
          "start_time": "09:00",
          "duration_minutes": 60,
          "duration_days": null,
          "start_fold": null,
          "end_fold": null,
          "gap_policy": "require_review",
          "rolling_weeks": 4
        },
        "booking_id": "3848038877f2d01fff3eb605e5f59e8a",
        "state": "active",
        "overridden": 0,
        "exclusion_ids": [],
        "reason": "Owner-reviewed generate",
        "version": 1,
        "created_at": "2026-10-30T12:11:25+00:00",
        "updated_at": "2026-10-30T12:11:25+00:00",
        "booking": {
          "id": "3848038877f2d01fff3eb605e5f59e8a",
          "kind": "job",
          "job_id": "030a91e3f84c5b96395ab6649ba51b36",
          "title": "Protected history QA",
          "resource_ids": [
            "887fbd90fbca760147743caae28ba075"
          ],
          "resource_snapshot": [
            {
              "id": "887fbd90fbca760147743caae28ba075",
              "name": "Worker 0",
              "colour": "#245648"
            }
          ],
          "whole_team": 0,
          "all_day": 0,
          "start_date": "2026-11-16",
          "end_date": "2026-11-16",
          "start_time": "09:00",
          "end_time": "10:00",
          "start_fold": null,
          "end_fold": null,
          "start_utc": "2026-11-16T09:00:00+00:00",
          "end_utc": "2026-11-16T10:00:00+00:00",
          "note": "",
          "version": 1,
          "archived": 0,
          "created_at": "2026-10-30T12:11:25+00:00",
          "updated_at": "2026-10-30T12:11:25+00:00"
        }
      }
    ],
    "runs": [
      {
        "id": "2fd8513be59d19920fa6d917ee49b2dd",
        "preview_hash": "f41ed0828d57d58fc72293bb9f1c5f58fcd558a4cb387cf9b6662ffbf59e5873",
        "created_at": "2026-10-30T12:11:25+00:00"
      }
    ]
  },
  "protected_timer": "6f6b7ecbca8616989073642e6191abb9",
  "protected_invoice_id": "b211c83132806dcee2ef830fe930edff",
  "protected_history_created_before_planning": true,
  "protected_table_sha256": {
    "field_sessions": "444a833955ae6e5148e2a01ce4b1d41e1ce279f1c1c209857ce3cdc2d22cf645",
    "field_intervals": "36af633f297491a796a19b2c46803936339538612eb426458af7766f3a2cac9c",
    "field_history": "cc1bbc06ecec5a0d9a3fedb7e1f7689a29d4de1ce2c32d049f396335576dc490",
    "field_logs": "1c9eb510899c8283a8129ccd7f3d2989f37aa3e49014e7a730af731943d02f3e",
    "field_log_history": "104009f93db8543687bc356b5f6a0ceb6562044251f6196a297cc53d08c65304",
    "field_time_links": "0ac96742b778ed8748e12ab4b2c0f077a967298caa62f00475538c542fdcfbcc",
    "time_entries": "3196b3ce336fa6021e5ecbef7b424593b676e79770c8207403d0eb253438f7ed",
    "document_sources": "676d2712624eecb8614ab92171c4a0fc81b0d9af237ceeaaedb553d1157be0d7",
    "source_history": "d82e8ff6e39defe5841a06facf56358629011fa8357f41d8bf430841935e87fb",
    "quotes": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
    "invoices": "7c5e180b47dae6e3b4fbaa09dbc53c0e12eb3bcaa36ce7e3088374d83cca0d22",
    "payments": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
    "job_materials": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"
  },
  "baseline_counts": {
    "oak": {
      "customers": 3,
      "jobs": 3,
      "quotes": 0,
      "payments": 0,
      "operations": 21,
      "assets": 0,
      "site": 1,
      "site_history": 1,
      "audit": 23,
      "storage_identity": 1,
      "invoices": 1,
      "quote_links": 0,
      "document_events": 3,
      "document_counters": 2,
      "payment_stages": 0,
      "payment_allocations": 0,
      "payment_reversals": 0,
      "payment_details": 0,
      "customer_changes": 0,
      "customer_links": 0,
      "materials_catalogue": 0,
      "job_materials": 0,
      "material_audit": 0,
      "team_resources": 6,
      "time_entries": 2,
      "workforce_audit": 9,
      "calendar_bookings": 6,
      "calendar_audit": 6,
      "setup_progress": 1,
      "staff_updates": 0,
      "photo_blobs": 0,
      "job_photos": 0,
      "photo_history": 0,
      "gallery_projects": 0,
      "gallery_history": 0,
      "field_logs": 1,
      "field_log_history": 1,
      "field_sessions": 1,
      "field_intervals": 1,
      "field_resource_locks": 0,
      "field_history": 4,
      "field_time_links": 2,
      "field_material_links": 0,
      "document_sources": 1,
      "source_history": 2,
      "recurring_contracts": 1,
      "recurrence_rules": 1,
      "recurrence_blocks": 0,
      "recurrence_occurrences": 5,
      "recurrence_history": 8,
      "recurrence_runs": 1,
      "portal_accounts": 0,
      "portal_tokens": 0,
      "portal_events": 0,
      "portal_migrations": 1,
      "sales_settings": 1,
      "sales_settings_history": 0,
      "quote_responses": 0,
      "payment_request_snapshots": 0,
      "feedback_requests": 0,
      "feedback_tokens": 0,
      "feedback_responses": 0,
      "feedback_consents": 0,
      "feedback_publications": 0,
      "feedback_history": 0,
      "job_workflow": 3,
      "job_workflow_history": 4,
      "opportunity_settings": 1,
      "opportunity_settings_history": 0,
      "opportunity_reviews": 0,
      "opportunity_history": 0,
      "customer_records": 3,
      "customer_record_history": 3,
      "customer_pair_decisions": 0,
      "customer_pair_history": 0,
      "customer_transfers": 0,
      "customer_transfer_jobs": 0,
      "customer_completion_runs": 0,
      "enquiry_intakes": 0,
      "enquiry_photo_sources": 0
    },
    "harbour": {
      "customers": 0,
      "jobs": 0,
      "quotes": 0,
      "payments": 0,
      "operations": 0,
      "assets": 0,
      "site": 1,
      "site_history": 1,
      "audit": 1,
      "storage_identity": 1,
      "invoices": 0,
      "quote_links": 0,
      "document_events": 0,
      "document_counters": 2,
      "payment_stages": 0,
      "payment_allocations": 0,
      "payment_reversals": 0,
      "payment_details": 0,
      "customer_changes": 0,
      "customer_links": 0,
      "materials_catalogue": 0,
      "job_materials": 0,
      "material_audit": 0,
      "team_resources": 0,
      "time_entries": 0,
      "workforce_audit": 0,
      "calendar_bookings": 0,
      "calendar_audit": 0,
      "setup_progress": 1,
      "staff_updates": 0,
      "photo_blobs": 0,
      "job_photos": 0,
      "photo_history": 0,
      "gallery_projects": 0,
      "gallery_history": 0,
      "field_logs": 0,
      "field_log_history": 0,
      "field_sessions": 0,
      "field_intervals": 0,
      "field_resource_locks": 0,
      "field_history": 0,
      "field_time_links": 0,
      "field_material_links": 0,
      "document_sources": 0,
      "source_history": 0,
      "recurring_contracts": 0,
      "recurrence_rules": 0,
      "recurrence_blocks": 0,
      "recurrence_occurrences": 0,
      "recurrence_history": 0,
      "recurrence_runs": 0,
      "portal_accounts": 0,
      "portal_tokens": 0,
      "portal_events": 0,
      "portal_migrations": 1,
      "sales_settings": 1,
      "sales_settings_history": 0,
      "quote_responses": 0,
      "payment_request_snapshots": 0,
      "feedback_requests": 0,
      "feedback_tokens": 0,
      "feedback_responses": 0,
      "feedback_consents": 0,
      "feedback_publications": 0,
      "feedback_history": 0,
      "job_workflow": 0,
      "job_workflow_history": 0,
      "opportunity_settings": 1,
      "opportunity_settings_history": 0,
      "opportunity_reviews": 0,
      "opportunity_history": 0,
      "customer_records": 0,
      "customer_record_history": 0,
      "customer_pair_decisions": 0,
      "customer_pair_history": 0,
      "customer_transfers": 0,
      "customer_transfer_jobs": 0,
      "customer_completion_runs": 0,
      "enquiry_intakes": 0,
      "enquiry_photo_sources": 0
    }
  },
  "clock_override": "Only API setup used 19 October for retained past occurrences; browser server uses actual current London date",
  "second_business_empty": true
}
