top of page

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "LMSFlightFormat v1.1",
  "$comment": "Schema version 1.1 — Added DepartTerminal, ArrivalTerminal (default: \"\"), CO2KG, and default \"\" for all string fields",
  "type": "object",
  "required": ["BookingReference", "PassengerCount", "Currency", "Segments", "FormattingPreferences"],
  "properties": {
    "BookingReference": {
      "type": "string",
      "pattern": "^[A-Z0-9\\-]+$",
      "default": ""
    },
    "PassengerCount": {
      "type": "integer",
      "minimum": 1
    },
    "Currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "default": ""
    },
    "Segments": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": [
          "FlightNumber",
          "Carrier",
          "DepartureAirport",
          "ArrivalAirport",
          "DepartureDate",
          "DepartureTime",
          "ArrivalDate",
          "ArrivalTime",
          "CabinClass",
          "FareClass",
          "Status"
        ],
        "properties": {
          "FlightNumber": { "type": "string", "default": "" },
          "Carrier": { "type": "string", "default": "" },
          "DepartureAirport": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "default": ""
          },
          "ArrivalAirport": {
            "type": "string",
            "pattern": "^[A-Z]{3}$",
            "default": ""
          },
          "DepartureDate": {
            "type": "string",
            "format": "date",
            "default": ""
          },
          "DepartureTime": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "default": ""
          },
          "ArrivalDate": {
            "type": "string",
            "format": "date",
            "default": ""
          },
          "ArrivalTime": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "default": ""
          },
          "CabinClass": {
            "type": "string",
            "enum": ["Economy", "Premium Economy", "Business", "First"],
            "default": ""
          },
          "FareClass": {
            "type": "string",
            "pattern": "^[A-Z]{1}$",
            "default": ""
          },
          "AircraftType": { "type": "string", "default": "" },
          "Status": {
            "type": "string",
            "enum": ["Confirmed", "Pending", "Cancelled"],
            "default": ""
          },
          "DepartTerminal": {
            "type": "string",
            "default": ""
          },
          "ArrivalTerminal": {
            "type": "string",
            "default": ""
          },
          "CO2KG": {
            "type": "number",
            "minimum": 0
          },
          "Duration": {
            "type": "string",
            "pattern": "^P(T(?=\d)(\d+H)?(\d+M)?)?$",
            "default": ""
         }
        }
      }
    },
    "FormattingPreferences": {
      "type": "object",
      "required": ["DateFormat", "TimeFormat", "TimeZoneHandling"],
      "properties": {
        "DateFormat": {
          "type": "string",
          "enum": ["yyyy-MM-dd", "dd/MM/yyyy", "MM-dd-yyyy"],
          "default": ""
        },
        "TimeFormat": {
          "type": "string",
          "enum": ["HH:mm", "hh:mm tt"],
          "default": ""
        },
        "TimeZoneHandling": {
          "type": "string",
          "enum": ["LocalOnly", "UTC", "Mixed"],
          "default": ""
        }
      }
    }
  }
}

bottom of page