[2025-12-19 15:37:27] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 15:37:27] [INFO] Using Mailbox ID: 68f1466aed072ad4a
[2025-12-19 15:37:27] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 15:37:27] [INFO] File size: 6642 bytes
[2025-12-19 15:37:27] [INFO] Loaded real mailbox: N/A
[2025-12-19 15:37:27] [INFO] Mailbox default saasclientId: 68eeb686225c40db4
[2025-12-19 15:37:27] [INFO] Mailbox assigned agencies: ["68eeb686225c40db4","68e67aaba2bb4565e","68d1820f7ad4dadbd","68910627445d6e167"]
[2025-12-19 15:37:27] [INFO] Mailbox dispatch stations: ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756","68d1884332e5f169b","68ffe49c256b67300","68922bda7fe89f7ff"]
[2025-12-19 15:37:27] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_69457137b9495
[2025-12-19 15:37:27] [INFO] About to extract fields from XML. File size: 6642 bytes
[2025-12-19 15:37:27] [INFO] Number of mappings: 28
[2025-12-19 15:37:27] [INFO] Starting XML parsing. Content length: 6642
[2025-12-19 15:37:27] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-19 15:37:27] [INFO] Processing 28 field mappings
[2025-12-19 15:37:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-19 15:37:27] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-19 15:37:27] [INFO]   -> Found value: NOMATCH1
NOMATCH2
NOMATCH3
[2025-12-19 15:37:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "NOMATCH1\nNOMATCH2\nNOMATCH3"
[2025-12-19 15:37:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-19 15:37:27] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-19 15:37:27] [INFO]   -> Found value: 2025003081
2025019545
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentInternalId' = "2025003081\n2025019545"
[2025-12-19 15:37:27] [INFO]   -> Set field 'dispatchRunNumber' = "2025003081\n2025019545"
[2025-12-19 15:37:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-19 15:37:27] [INFO]   -> Found value: TRAUMATIC INJURY
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentTypeValue1' = "TRAUMATIC INJURY"
[2025-12-19 15:37:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-19 15:37:27] [INFO]   -> Found value: 375
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 375
[2025-12-19 15:37:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-19 15:37:27] [INFO]   -> Found value: TN
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-19 15:37:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-19 15:37:27] [INFO]   -> Found value: 38583
[2025-12-19 15:37:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2025-12-19 15:37:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-19 15:37:27] [INFO]   -> Found value: 36.01249
[2025-12-19 15:37:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0124899999999996680344338528811931610107421875
[2025-12-19 15:37:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-19 15:37:27] [INFO]   -> Found value: -85.28481
[2025-12-19 15:37:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2848099999999931242200545966625213623046875
[2025-12-19 15:37:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-19 15:37:27] [INFO]   -> Found value: 2025-12-16 14:51:00
[2025-12-19 15:37:27] [INFO]   -> Set field 'alarm' = "2025-12-16 14:51:00"
[2025-12-19 15:37:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-19 15:37:27] [INFO]   -> Found value: 2025-12-16 14:51:35
[2025-12-19 15:37:27] [INFO]   -> Set field 'dispatched' = "2025-12-16 14:51:35"
[2025-12-19 15:37:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-19 15:37:27] [INFO]   -> Found value: GLADE CREEK RD
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentLocationCross' = "GLADE CREEK RD"
[2025-12-19 15:37:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-19 15:37:27] [INFO]   -> Found value: PCFR
[2025-12-19 15:37:27] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-19 15:37:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-19 15:37:27] [INFO]   -> Found value: 2025-12-16 14:51:35
[2025-12-19 15:37:27] [INFO]   -> Set field 'timedispatch' = "2025-12-16 14:51:35"
[2025-12-19 15:37:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-19 15:37:27] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-19 15:37:27] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-19 15:37:27] [INFO]   -> Found value: 20250137978
20250137976
20250137979
[2025-12-19 15:37:27] [INFO]   -> Set field 'policeReportNumber' = "20250137978\n20250137976\n20250137979"
[2025-12-19 15:37:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-19 15:37:27] [INFO]   -> Found value: [EMS] 500 LBS  ( CABINET)  [12/16/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12/16/25 14:51...
[2025-12-19 15:37:27] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]"
[2025-12-19 15:37:27] [INFO]   -> Set field 'cADLog' = "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]"
[2025-12-19 15:37:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-19 15:37:27] [INFO]   -> Found value: SPARTA
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2025-12-19 15:37:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-19 15:37:27] [INFO]   -> Found value: BELKA
[2025-12-19 15:37:27] [INFO]   -> Set field 'streetName' = "BELKA"
[2025-12-19 15:37:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-19 15:37:27] [INFO]   -> Found value: RD
[2025-12-19 15:37:27] [INFO]   -> Set field 'streetType' = "RD"
[2025-12-19 15:37:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-19 15:37:27] [INFO]   -> Found value: 375 BELKA RD
[2025-12-19 15:37:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "375 BELKA RD"
[2025-12-19 15:37:27] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-19 15:37:27] [INFO] Concatenating street name and type
[2025-12-19 15:37:27] [INFO]   -> Combined street name: BELKA RD
[2025-12-19 15:37:27] [INFO] Built locationCoordinates from lat/lng: 36.01249,-85.28481
[2025-12-19 15:37:27] [INFO] Extracted data: {
    "cADAgencyIdentifier": "NOMATCH1\nNOMATCH2\nNOMATCH3",
    "incidentInternalId": "2025003081\n2025019545",
    "dispatchRunNumber": "2025003081\n2025019545",
    "incidentTypeValue1": "TRAUMATIC INJURY",
    "incidentLocationStreetNumber": 375,
    "incidentLocationStateName": "TN",
    "nERISIncidentPostalCode": 38583,
    "nERISIncidentLatitude": 36.0124899999999996680344338528811931610107421875,
    "nERISIncidentLongitude": -85.2848099999999931242200545966625213623046875,
    "alarm": "2025-12-16 14:51:00",
    "dispatched": "2025-12-16 14:51:35",
    "incidentLocationCross": "GLADE CREEK RD",
    "cADVehicleID": "PCFR",
    "timedispatch": "2025-12-16 14:51:35",
    "policeReportNumber": "20250137978\n20250137976\n20250137979",
    "dispatchNotes": "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]",
    "cADLog": "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]",
    "incidentLocationCity": "SPARTA",
    "streetName": "BELKA RD",
    "incidentAddressTextVersionStreet": "375 BELKA RD",
    "locationCoordinates": "36.01249,-85.28481"
}
[2025-12-19 15:37:27] [INFO] Number of extracted fields: 21
[2025-12-19 15:37:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'NOMATCH1
NOMATCH2
NOMATCH3'
[2025-12-19 15:37:27] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NOMATCH1
NOMATCH2
NOMATCH3', Parsed IDs = ["NOMATCH1","NOMATCH2","NOMATCH3"], Assigned Agencies count = 4
[2025-12-19 15:37:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["NOMATCH1","NOMATCH2","NOMATCH3"]
[2025-12-19 15:37:27] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH1' (position 1)
[2025-12-19 15:37:27] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH1'
[2025-12-19 15:37:27] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH2' (position 2)
[2025-12-19 15:37:28] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH2'
[2025-12-19 15:37:28] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH3' (position 3)
[2025-12-19 15:37:28] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH3'
[2025-12-19 15:37:28] [WARNING] ABORT: All AgencyCode values failed lookup for multi-agency mailbox. Skipping dispatch creation.
[2025-12-19 15:37:28] [INFO] Dispatch creation halted because no AgencyCode matched assigned agencies.
[2025-12-19 15:37:32] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 15:37:32] [INFO] Using Mailbox ID: 68f1466aed072ad4a
[2025-12-19 15:37:32] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 15:37:32] [INFO] File size: 6642 bytes
[2025-12-19 15:37:32] [INFO] Loaded real mailbox: N/A
[2025-12-19 15:37:32] [INFO] Mailbox default saasclientId: 68eeb686225c40db4
[2025-12-19 15:37:32] [INFO] Mailbox assigned agencies: ["68eeb686225c40db4","68e67aaba2bb4565e","68d1820f7ad4dadbd","68910627445d6e167"]
[2025-12-19 15:37:32] [INFO] Mailbox dispatch stations: ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756","68d1884332e5f169b","68ffe49c256b67300","68922bda7fe89f7ff"]
[2025-12-19 15:37:32] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_6945713cb7b99
[2025-12-19 15:37:32] [INFO] About to extract fields from XML. File size: 6642 bytes
[2025-12-19 15:37:32] [INFO] Number of mappings: 28
[2025-12-19 15:37:32] [INFO] Starting XML parsing. Content length: 6642
[2025-12-19 15:37:32] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-19 15:37:32] [INFO] Processing 28 field mappings
[2025-12-19 15:37:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-19 15:37:32] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-19 15:37:32] [INFO]   -> Found value: NOMATCH1
NOMATCH2
NOMATCH3
[2025-12-19 15:37:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "NOMATCH1\nNOMATCH2\nNOMATCH3"
[2025-12-19 15:37:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-19 15:37:32] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-19 15:37:32] [INFO]   -> Found value: 2025003081
2025019545
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentInternalId' = "2025003081\n2025019545"
[2025-12-19 15:37:32] [INFO]   -> Set field 'dispatchRunNumber' = "2025003081\n2025019545"
[2025-12-19 15:37:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-19 15:37:32] [INFO]   -> Found value: TRAUMATIC INJURY
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentTypeValue1' = "TRAUMATIC INJURY"
[2025-12-19 15:37:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-19 15:37:32] [INFO]   -> Found value: 375
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 375
[2025-12-19 15:37:32] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-19 15:37:32] [INFO]   -> Found value: TN
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-19 15:37:32] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-19 15:37:32] [INFO]   -> Found value: 38583
[2025-12-19 15:37:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2025-12-19 15:37:32] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-19 15:37:32] [INFO]   -> Found value: 36.01249
[2025-12-19 15:37:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0124899999999996680344338528811931610107421875
[2025-12-19 15:37:32] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-19 15:37:32] [INFO]   -> Found value: -85.28481
[2025-12-19 15:37:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2848099999999931242200545966625213623046875
[2025-12-19 15:37:32] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-19 15:37:32] [INFO]   -> Found value: 2025-12-16 14:51:00
[2025-12-19 15:37:32] [INFO]   -> Set field 'alarm' = "2025-12-16 14:51:00"
[2025-12-19 15:37:32] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-19 15:37:32] [INFO]   -> Found value: 2025-12-16 14:51:35
[2025-12-19 15:37:32] [INFO]   -> Set field 'dispatched' = "2025-12-16 14:51:35"
[2025-12-19 15:37:32] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-19 15:37:32] [INFO]   -> Found value: GLADE CREEK RD
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentLocationCross' = "GLADE CREEK RD"
[2025-12-19 15:37:32] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-19 15:37:32] [INFO]   -> Found value: PCFR
[2025-12-19 15:37:32] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-19 15:37:32] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-19 15:37:32] [INFO]   -> Found value: 2025-12-16 14:51:35
[2025-12-19 15:37:32] [INFO]   -> Set field 'timedispatch' = "2025-12-16 14:51:35"
[2025-12-19 15:37:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-19 15:37:32] [INFO]   -> No value found (null or empty)
[2025-12-19 15:37:32] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-19 15:37:32] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-19 15:37:32] [INFO]   -> Found value: 20250137978
20250137976
20250137979
[2025-12-19 15:37:32] [INFO]   -> Set field 'policeReportNumber' = "20250137978\n20250137976\n20250137979"
[2025-12-19 15:37:32] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-19 15:37:32] [INFO]   -> Found value: [EMS] 500 LBS  ( CABINET)  [12/16/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12/16/25 14:51...
[2025-12-19 15:37:32] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]"
[2025-12-19 15:37:32] [INFO]   -> Set field 'cADLog' = "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]"
[2025-12-19 15:37:32] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-19 15:37:32] [INFO]   -> Found value: SPARTA
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2025-12-19 15:37:32] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-19 15:37:32] [INFO]   -> Found value: BELKA
[2025-12-19 15:37:32] [INFO]   -> Set field 'streetName' = "BELKA"
[2025-12-19 15:37:32] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-19 15:37:32] [INFO]   -> Found value: RD
[2025-12-19 15:37:32] [INFO]   -> Set field 'streetType' = "RD"
[2025-12-19 15:37:32] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-19 15:37:32] [INFO]   -> Found value: 375 BELKA RD
[2025-12-19 15:37:32] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "375 BELKA RD"
[2025-12-19 15:37:32] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-19 15:37:32] [INFO] Concatenating street name and type
[2025-12-19 15:37:32] [INFO]   -> Combined street name: BELKA RD
[2025-12-19 15:37:32] [INFO] Built locationCoordinates from lat/lng: 36.01249,-85.28481
[2025-12-19 15:37:32] [INFO] Extracted data: {
    "cADAgencyIdentifier": "NOMATCH1\nNOMATCH2\nNOMATCH3",
    "incidentInternalId": "2025003081\n2025019545",
    "dispatchRunNumber": "2025003081\n2025019545",
    "incidentTypeValue1": "TRAUMATIC INJURY",
    "incidentLocationStreetNumber": 375,
    "incidentLocationStateName": "TN",
    "nERISIncidentPostalCode": 38583,
    "nERISIncidentLatitude": 36.0124899999999996680344338528811931610107421875,
    "nERISIncidentLongitude": -85.2848099999999931242200545966625213623046875,
    "alarm": "2025-12-16 14:51:00",
    "dispatched": "2025-12-16 14:51:35",
    "incidentLocationCross": "GLADE CREEK RD",
    "cADVehicleID": "PCFR",
    "timedispatch": "2025-12-16 14:51:35",
    "policeReportNumber": "20250137978\n20250137976\n20250137979",
    "dispatchNotes": "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]",
    "cADLog": "[EMS] 500 LBS  ( CABINET)  [12\/16\/25 14:51:31 DSTEPHENS] [EMS] CHECKING AIR MEDICAL  [12\/16\/25 14:51:30 KMORGAN2] [APCO INTELLICOMM] Case ID: EmJAIAzk18 Caller Phone: 9313169920 Caller Name: VERIZON Incident Location: 375 BELKA RD Incident Location Detail: GLADE CREEK RD\/ Nature: TRAUMATIC INJURY Incident #: 20250137976 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/16\/2025 14:51:00 DSTEPHENS]",
    "incidentLocationCity": "SPARTA",
    "streetName": "BELKA RD",
    "incidentAddressTextVersionStreet": "375 BELKA RD",
    "locationCoordinates": "36.01249,-85.28481"
}
[2025-12-19 15:37:32] [INFO] Number of extracted fields: 21
[2025-12-19 15:37:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'NOMATCH1
NOMATCH2
NOMATCH3'
[2025-12-19 15:37:32] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NOMATCH1
NOMATCH2
NOMATCH3', Parsed IDs = ["NOMATCH1","NOMATCH2","NOMATCH3"], Assigned Agencies count = 4
[2025-12-19 15:37:32] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["NOMATCH1","NOMATCH2","NOMATCH3"]
[2025-12-19 15:37:32] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH1' (position 1)
[2025-12-19 15:37:32] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH1'
[2025-12-19 15:37:32] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH2' (position 2)
[2025-12-19 15:37:33] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH2'
[2025-12-19 15:37:33] [INFO] Attempting SAASClient lookup for AgencyCode 'NOMATCH3' (position 3)
[2025-12-19 15:37:33] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'NOMATCH3'
[2025-12-19 15:37:33] [WARNING] ABORT: All AgencyCode values failed lookup for multi-agency mailbox. Skipping dispatch creation.
[2025-12-19 15:37:33] [INFO] Dispatch creation halted because no AgencyCode matched assigned agencies.
[2025-12-19 17:23:17] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 17:23:17] [INFO] Using Mailbox ID: 68f1466aed072ad4a
[2025-12-19 17:23:17] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 17:23:17] [INFO] File size: 6642 bytes
[2025-12-19 17:23:18] [INFO] Loaded real mailbox: N/A
[2025-12-19 17:23:18] [INFO] Mailbox default saasclientId: 68eeb686225c40db4
[2025-12-19 17:23:18] [INFO] Mailbox assigned agencies: ["68eeb686225c40db4","68e67aaba2bb4565e","68d1820f7ad4dadbd","68910627445d6e167"]
[2025-12-19 17:23:18] [INFO] Mailbox dispatch stations: ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756","68d1884332e5f169b","68ffe49c256b67300","68922bda7fe89f7ff"]
[2025-12-19 17:23:18] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_69458a061416f
[2025-12-19 17:23:18] [ERROR] Test failed: Mailbox does not have 'Create Dispatch' action enabled
[2025-12-19 17:23:18] [INFO] Error at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload_test.php:632
[2025-12-19 17:24:12] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 17:24:12] [INFO] Using Mailbox ID: 68f1466aed072ad4a
[2025-12-19 17:24:12] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 17:24:12] [INFO] File size: 6638 bytes
[2025-12-19 17:24:12] [INFO] Loaded real mailbox: N/A
[2025-12-19 17:24:12] [INFO] Mailbox default saasclientId: 68eeb686225c40db4
[2025-12-19 17:24:12] [INFO] Mailbox assigned agencies: ["68eeb686225c40db4","68e67aaba2bb4565e","68d1820f7ad4dadbd","68910627445d6e167"]
[2025-12-19 17:24:12] [INFO] Mailbox dispatch stations: ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756","68d1884332e5f169b","68ffe49c256b67300","68922bda7fe89f7ff"]
[2025-12-19 17:24:12] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_69458a3cd467c
[2025-12-19 17:24:12] [ERROR] Test failed: Mailbox does not have 'Create Dispatch' action enabled
[2025-12-19 17:24:12] [INFO] Error at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload_test.php:632
[2025-12-19 17:25:12] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 17:25:12] [INFO] Using Mailbox ID: 68f14c0db1c4ebc02
[2025-12-19 17:25:12] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 17:25:12] [INFO] File size: 6638 bytes
[2025-12-19 17:25:12] [INFO] Loaded real mailbox: N/A
[2025-12-19 17:25:12] [INFO] Mailbox default saasclientId: 68910627445d6e167
[2025-12-19 17:25:12] [INFO] Mailbox assigned agencies: []
[2025-12-19 17:25:12] [INFO] Mailbox dispatch stations: []
[2025-12-19 17:25:12] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_69458a78b13e9
[2025-12-19 17:25:12] [ERROR] Test failed: Mailbox does not have 'Create Dispatch' action enabled
[2025-12-19 17:25:12] [INFO] Error at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload_test.php:632
[2025-12-19 23:13:04] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 23:13:04] [INFO] Using Mailbox ID: 68f14c0db1c4ebc02
[2025-12-19 23:13:04] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 23:13:04] [INFO] File size: 6638 bytes
[2025-12-19 23:13:04] [INFO] Loaded real mailbox: N/A
[2025-12-19 23:13:04] [INFO] Mailbox default saasclientId: 68910627445d6e167
[2025-12-19 23:13:04] [INFO] Mailbox assigned agencies: []
[2025-12-19 23:13:04] [INFO] Mailbox dispatch stations: []
[2025-12-19 23:13:04] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_6945dc00eb296
[2025-12-19 23:13:04] [ERROR] Test failed: Mailbox does not have 'Create Dispatch' action enabled
[2025-12-19 23:13:04] [INFO] Error at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload_test.php:632
[2025-12-19 23:24:02] [INFO] === STARTING MULTI-AGENCY ROUTING TEST ===
[2025-12-19 23:24:02] [INFO] Using Mailbox ID: 68f14c0db1c4ebc02
[2025-12-19 23:24:02] [INFO] Connected to real API: https://stationboss.net/login
[2025-12-19 23:24:02] [INFO] File size: 6638 bytes
[2025-12-19 23:24:02] [INFO] Loaded real mailbox: N/A
[2025-12-19 23:24:02] [INFO] Mailbox default saasclientId: 68910627445d6e167
[2025-12-19 23:24:02] [INFO] Mailbox assigned agencies: []
[2025-12-19 23:24:02] [INFO] Mailbox dispatch stations: []
[2025-12-19 23:24:02] [INFO] MOCK: Would create FTPFiles record with ID: TEST_FTP_6945de925047c
[2025-12-19 23:24:02] [ERROR] Test failed: Mailbox does not have 'Create Dispatch' action enabled
[2025-12-19 23:24:02] [INFO] Error at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload_test.php:632
