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" Departure = "departure" ArrivalLocation = "arrival" Time = "time" CategoryDeparture = "DEP" DepartureTime = "departure_time" Destination = "destination" OtherInfo = "other" CategoryCancellation = "CNL" CategoryDelay = "DLA" NewDepartureTime = "new_departure_time" ArrivalTime = "arrival_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