package parsers import ( "caatsm/internal/config" "caatsm/internal/domain" "caatsm/pkg/utils" "fmt" "regexp" "strings" "sync" "time" ) const ( StartIndicatorPrefix = "ZCZC" EndHeaderMarker = "." BeginPartMarker = "BEGIN PART" Category = "category" CategoryArrival = "ARR" FlightNumber = "number" SSR = "ssr" DepartureCode = "dep" DepartureTime = "dep_time" ArrivalCode = "arr" ArrivalTime = "arr_time" CategoryDeparture = "DEP" DestinationCode = "dest" OtherInfo = "other" CategoryCancellation = "CNL" CategoryDelay = "DLA" NewDepartureTime = "new_departure_time" CategoryFlightPlan = "FPL" ReferenceData = "reference_data" Aircraft = "aircraft" CategorySurveillance = "surve" Indicator = "indicator" Other = "other" AircraftID = "aircraft" Surveillance = "surve" Speed = "speed" Level = "level" Route = "route" EstimatedTime = "estt" AlternateAirport = "alter" Register = "reg" PBN = "pbn" NavigationEquipment = "nav" EstimatedElapsedTime = "eet" SELCALCode = "sel" PerformanceCategory = "per" RerouteInformation = "rif" Remarks = "remark" ) var ( categoryRegex = regexp.MustCompile(`\((?P[A-Z]+)-`) emptyLineRemove = regexp.MustCompile(`(?m)^\s*$`) bodyOnly = regexp.MustCompile(`(.|\n)?(ZCZC(.|\n)*)NNNN(.|\n)?$`) originator = regexp.MustCompile(`(?P[0-9]+)\s(?P[A-Z]+)`) navPattern = regexp.MustCompile(`(?m)NAV\/(?P