{
  "entities": [
    {
      "columns": [
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Traveller profile id (TP + 9 digits)",
          "name": "traveller_id",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(64)",
          "description": "Given name",
          "name": "given_name",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(64)",
          "description": "Family name",
          "name": "family_name",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "QUASI_IDENTIFIER"
          ],
          "data_type": "DATE",
          "description": "Date of birth",
          "name": "birth_date",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "QUASI_IDENTIFIER"
          ],
          "data_type": "VARCHAR(1)",
          "description": "F / M / X as declared for travel",
          "name": "gender",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(128)",
          "description": "Contact e-mail",
          "name": "email",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(32)",
          "description": "Contact phone",
          "name": "phone",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(2)",
          "description": "Country of residence (user-assigned code)",
          "name": "residence_country",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Profile creation date",
          "name": "created_on",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A traveller profile: the person who books, flies and stays (the natural subset root).",
      "name": "Traveller",
      "primary_key": [
        "traveller_id"
      ],
      "system": "reservation",
      "table": "travellers"
    },
    {
      "columns": [
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(6)",
          "description": "Record locator",
          "name": "pnr_locator",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Traveller who made the booking",
          "name": "booker_id",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "TIMESTAMP",
          "description": "Booking time",
          "name": "created_at",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(12)",
          "description": "WEB / APP / AGENCY / CALL_CENTRE",
          "name": "channel",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "TICKETED / CANCELLED / WAITLISTED / HELD",
          "name": "status",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(128)",
          "description": "Booking contact e-mail",
          "name": "contact_email",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "DECIMAL(10,2)",
          "description": "Total fare in XTS",
          "name": "total_fare",
          "nullable": false,
          "sensitive": true
        }
      ],
      "description": "A booking record (PNR) identified by a six-character record locator.",
      "name": "Booking",
      "primary_key": [
        "pnr_locator"
      ],
      "system": "reservation",
      "table": "bookings"
    },
    {
      "columns": [
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(15)",
          "description": "E-ticket number (ZT + 13 digits)",
          "name": "ticket_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(6)",
          "description": "Booking",
          "name": "pnr_locator",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Passenger",
          "name": "traveller_id",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(3)",
          "description": "ADT / CHD / INF",
          "name": "passenger_type",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "TIMESTAMP",
          "description": "Issue time",
          "name": "issued_at",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "DECIMAL(10,2)",
          "description": "Fare of this ticket",
          "name": "fare_amount",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "OPEN / USED / REFUNDED / EXCHANGED / VOID",
          "name": "status",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "An electronic ticket for one passenger of a booking.",
      "name": "Ticket",
      "primary_key": [
        "ticket_number"
      ],
      "system": "reservation",
      "table": "tickets"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Segment id",
          "name": "segment_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(15)",
          "description": "Ticket",
          "name": "ticket_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "INT",
          "description": "Coupon sequence on the ticket",
          "name": "coupon_number",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(6)",
          "description": "Invented flight designator",
          "name": "flight_number",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "QUASI_IDENTIFIER"
          ],
          "data_type": "VARCHAR(3)",
          "description": "Departure airport (invented Z.. code)",
          "name": "origin",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "QUASI_IDENTIFIER"
          ],
          "data_type": "VARCHAR(3)",
          "description": "Arrival airport (invented Z.. code)",
          "name": "destination",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Scheduled departure date",
          "name": "departure_date",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "INT",
          "description": "Scheduled block time",
          "name": "block_minutes",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(8)",
          "description": "ECONOMY / PREMIUM / BUSINESS / FIRST",
          "name": "cabin",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "CONFIRMED / FLOWN / CANCELLED / NO_SHOW / WAITLISTED",
          "name": "status",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "One flight coupon of a ticket: who flies where and when (an itinerary is a travel pattern).",
      "name": "FlightSegment",
      "primary_key": [
        "segment_id"
      ],
      "system": "reservation",
      "table": "flight_segments"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Request id",
          "name": "ssr_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(6)",
          "description": "Booking",
          "name": "pnr_locator",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Passenger the request is for",
          "name": "traveller_id",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "SENSITIVE"
          ],
          "data_type": "VARCHAR(20)",
          "description": "Invented request code",
          "name": "ssr_code",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "SENSITIVE",
            "PHI"
          ],
          "data_type": "VARCHAR(200)",
          "description": "Agent free text about the request",
          "name": "free_text",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "REQUESTED / CONFIRMED / DECLINED",
          "name": "status",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A special-service request (assistance, meal, minor, pet); it can reveal health or religion.",
      "name": "SpecialServiceRequest",
      "primary_key": [
        "ssr_id"
      ],
      "system": "reservation",
      "table": "special_service_requests"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Document record id",
          "name": "document_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Reservation traveller (cross-system)",
          "name": "traveller_ref",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(18)",
          "description": "PASSPORT / NATIONAL_ID_CARD / RESIDENCE_PERMIT",
          "name": "document_type",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(9)",
          "description": "Document number (ZD + 7 digits)",
          "name": "document_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(64)",
          "description": "Surname as printed",
          "name": "surname_on_document",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "QUASI_IDENTIFIER"
          ],
          "data_type": "VARCHAR(2)",
          "description": "Nationality (user-assigned code)",
          "name": "nationality",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(2)",
          "description": "Issuing country (user-assigned code)",
          "name": "issuing_country",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "PII",
            "QUASI_IDENTIFIER"
          ],
          "data_type": "DATE",
          "description": "Date of birth as printed",
          "name": "date_of_birth",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Expiry date",
          "name": "expiry_date",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A passport-like travel document captured for advance passenger information.",
      "name": "TravelDocument",
      "primary_key": [
        "document_id"
      ],
      "system": "departure_control",
      "table": "travel_documents"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Check-in id",
          "name": "checkin_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(15)",
          "description": "Reservation ticket (cross-system)",
          "name": "ticket_ref",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Reservation flight segment (cross-system)",
          "name": "segment_ref",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Travel document presented",
          "name": "document_id",
          "nullable": true,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(4)",
          "description": "Seat",
          "name": "seat",
          "nullable": true,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "INT",
          "description": "Checked bags",
          "name": "checked_bags",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "TIMESTAMP",
          "description": "Check-in time",
          "name": "checked_in_at",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(16)",
          "description": "CHECKED_IN / BOARDED / OFFLOADED / DENIED_BOARDING",
          "name": "boarding_status",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(64)",
          "description": "Boarding-pass barcode payload",
          "name": "boarding_pass_data",
          "nullable": true,
          "sensitive": true
        }
      ],
      "description": "A check-in and boarding record for one flight coupon.",
      "name": "CheckIn",
      "primary_key": [
        "checkin_id"
      ],
      "system": "departure_control",
      "table": "check_ins"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Stay id",
          "name": "stay_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Confirmation number (HC + 9 digits)",
          "name": "confirmation_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Reservation traveller (cross-system)",
          "name": "guest_ref",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(12)",
          "description": "Loyalty membership credited (cross-system)",
          "name": "loyalty_ref",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(6)",
          "description": "Invented hotel code",
          "name": "property_code",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Arrival",
          "name": "arrival_date",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Departure",
          "name": "departure_date",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "STANDARD / DELUXE / SUITE / ACCESSIBLE",
          "name": "room_type",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(12)",
          "description": "RESERVED / IN_HOUSE / CHECKED_OUT / NO_SHOW / CANCELLED",
          "name": "status",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "DECIMAL(10,2)",
          "description": "Nightly rate in XTS",
          "name": "nightly_rate",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "SENSITIVE",
            "PHI"
          ],
          "data_type": "VARCHAR(200)",
          "description": "Front-desk notes (allergies, accessibility...)",
          "name": "guest_notes",
          "nullable": true,
          "sensitive": true
        }
      ],
      "description": "A hotel stay in the property-management system.",
      "name": "HotelStay",
      "primary_key": [
        "stay_id"
      ],
      "system": "property",
      "table": "hotel_stays"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Charge id",
          "name": "charge_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Stay",
          "name": "stay_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Posting date",
          "name": "posted_on",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(14)",
          "description": "ROOM / FOOD_BEVERAGE / SPA / MINIBAR / PARKING / NO_SHOW_FEE",
          "name": "category",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "DECIMAL(10,2)",
          "description": "Amount in XTS",
          "name": "amount",
          "nullable": false,
          "sensitive": true
        }
      ],
      "description": "A charge posted to a stay's folio (the running hotel bill).",
      "name": "FolioCharge",
      "primary_key": [
        "charge_id"
      ],
      "system": "property",
      "table": "folio_charges"
    },
    {
      "columns": [
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(12)",
          "description": "Membership number (ZL + 10 digits)",
          "name": "member_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Reservation traveller (cross-system)",
          "name": "traveller_ref",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "BASE / SILVER / GOLD / PLATINUM",
          "name": "tier",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "BIGINT",
          "description": "Redeemable points",
          "name": "points_balance",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Enrolment date",
          "name": "enrolled_on",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "ACTIVE / SUSPENDED / CLOSED",
          "name": "status",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A loyalty programme membership of a traveller.",
      "name": "LoyaltyMember",
      "primary_key": [
        "member_number"
      ],
      "system": "loyalty",
      "table": "loyalty_members"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Activity id",
          "name": "activity_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(12)",
          "description": "Membership",
          "name": "member_number",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(12)",
          "description": "EARN_FLIGHT / EARN_STAY / REDEEM / EXPIRE / ADJUST",
          "name": "activity_type",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "INT",
          "description": "Points (negative for redemptions and expiry)",
          "name": "points",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "DATE",
          "description": "Activity date",
          "name": "activity_date",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A points movement: earned on a flight or stay, redeemed, expired or adjusted.",
      "name": "LoyaltyActivity",
      "primary_key": [
        "activity_id"
      ],
      "system": "loyalty",
      "table": "loyalty_activities"
    },
    {
      "columns": [
        {
          "classes": [],
          "data_type": "BIGINT",
          "description": "Payment id",
          "name": "payment_id",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(6)",
          "description": "Reservation booking paid (cross-system)",
          "name": "pnr_ref",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(11)",
          "description": "Hotel stay paid (cross-system)",
          "name": "stay_confirmation_ref",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "PAYMENT",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(24)",
          "description": "Payment-gateway card token",
          "name": "card_token",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [
            "PAYMENT"
          ],
          "data_type": "VARCHAR(4)",
          "description": "Last four digits shown on receipts",
          "name": "card_last4",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "PII",
            "DIRECT_IDENTIFIER"
          ],
          "data_type": "VARCHAR(96)",
          "description": "Name on the card",
          "name": "cardholder_name",
          "nullable": true,
          "sensitive": true
        },
        {
          "classes": [
            "FINANCIAL"
          ],
          "data_type": "DECIMAL(10,2)",
          "description": "Amount in XTS",
          "name": "amount",
          "nullable": false,
          "sensitive": true
        },
        {
          "classes": [],
          "data_type": "VARCHAR(3)",
          "description": "Always XTS in demo data",
          "name": "currency",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(10)",
          "description": "CAPTURED / AUTHORISED / REFUNDED / DECLINED / CHARGEBACK",
          "name": "status",
          "nullable": false,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "VARCHAR(24)",
          "description": "Why the cardholder disputed the payment",
          "name": "chargeback_reason",
          "nullable": true,
          "sensitive": false
        },
        {
          "classes": [],
          "data_type": "TIMESTAMP",
          "description": "Processing time",
          "name": "processed_at",
          "nullable": false,
          "sensitive": false
        }
      ],
      "description": "A card payment for a booking or a hotel stay (gateway token, never a card number).",
      "name": "Payment",
      "primary_key": [
        "payment_id"
      ],
      "system": "payments",
      "table": "payments"
    }
  ],
  "relationships": [
    {
      "child": "Booking",
      "child_columns": [
        "booker_id"
      ],
      "code": "FK_BOOKINGS_BOOKER_ID",
      "cross_system": false,
      "description": "Booking references Traveller",
      "kind": "FOREIGN_KEY",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "Ticket",
      "child_columns": [
        "pnr_locator"
      ],
      "code": "FK_TICKETS_PNR_LOCATOR",
      "cross_system": false,
      "description": "Ticket references Booking",
      "kind": "FOREIGN_KEY",
      "parent": "Booking",
      "parent_columns": [
        "pnr_locator"
      ]
    },
    {
      "child": "Ticket",
      "child_columns": [
        "traveller_id"
      ],
      "code": "FK_TICKETS_TRAVELLER_ID",
      "cross_system": false,
      "description": "Ticket references Traveller",
      "kind": "FOREIGN_KEY",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "FlightSegment",
      "child_columns": [
        "ticket_number"
      ],
      "code": "FK_FLIGHT_SEGMENTS_TICKET_NUMBER",
      "cross_system": false,
      "description": "FlightSegment references Ticket",
      "kind": "FOREIGN_KEY",
      "parent": "Ticket",
      "parent_columns": [
        "ticket_number"
      ]
    },
    {
      "child": "SpecialServiceRequest",
      "child_columns": [
        "pnr_locator"
      ],
      "code": "FK_SPECIAL_SERVICE_REQUESTS_PNR_LOCATOR",
      "cross_system": false,
      "description": "SpecialServiceRequest references Booking",
      "kind": "FOREIGN_KEY",
      "parent": "Booking",
      "parent_columns": [
        "pnr_locator"
      ]
    },
    {
      "child": "SpecialServiceRequest",
      "child_columns": [
        "traveller_id"
      ],
      "code": "FK_SPECIAL_SERVICE_REQUESTS_TRAVELLER_ID",
      "cross_system": false,
      "description": "SpecialServiceRequest references Traveller",
      "kind": "FOREIGN_KEY",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "CheckIn",
      "child_columns": [
        "document_id"
      ],
      "code": "FK_CHECK_INS_DOCUMENT_ID",
      "cross_system": false,
      "description": "CheckIn references TravelDocument",
      "kind": "FOREIGN_KEY",
      "parent": "TravelDocument",
      "parent_columns": [
        "document_id"
      ]
    },
    {
      "child": "FolioCharge",
      "child_columns": [
        "stay_id"
      ],
      "code": "FK_FOLIO_CHARGES_STAY_ID",
      "cross_system": false,
      "description": "FolioCharge references HotelStay",
      "kind": "FOREIGN_KEY",
      "parent": "HotelStay",
      "parent_columns": [
        "stay_id"
      ]
    },
    {
      "child": "LoyaltyActivity",
      "child_columns": [
        "member_number"
      ],
      "code": "FK_LOYALTY_ACTIVITIES_MEMBER_NUMBER",
      "cross_system": false,
      "description": "LoyaltyActivity references LoyaltyMember",
      "kind": "FOREIGN_KEY",
      "parent": "LoyaltyMember",
      "parent_columns": [
        "member_number"
      ]
    },
    {
      "child": "TravelDocument",
      "child_columns": [
        "traveller_ref"
      ],
      "code": "TRV_DOCUMENT_TRAVELLER",
      "cross_system": true,
      "description": "Departure control stores travel documents of reservation travellers",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "CheckIn",
      "child_columns": [
        "ticket_ref"
      ],
      "code": "TRV_CHECKIN_TICKET",
      "cross_system": true,
      "description": "Check-in records reference the e-ticket by its number",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "Ticket",
      "parent_columns": [
        "ticket_number"
      ]
    },
    {
      "child": "CheckIn",
      "child_columns": [
        "segment_ref"
      ],
      "code": "TRV_CHECKIN_SEGMENT",
      "cross_system": true,
      "description": "Check-in records name the flight coupon checked in",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "FlightSegment",
      "parent_columns": [
        "segment_id"
      ]
    },
    {
      "child": "HotelStay",
      "child_columns": [
        "guest_ref"
      ],
      "code": "TRV_STAY_GUEST",
      "cross_system": true,
      "description": "Hotel stays belong to traveller profiles",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "HotelStay",
      "child_columns": [
        "loyalty_ref"
      ],
      "code": "TRV_STAY_LOYALTY",
      "cross_system": true,
      "description": "Hotel stays credit points to a loyalty membership",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "LoyaltyMember",
      "parent_columns": [
        "member_number"
      ]
    },
    {
      "child": "LoyaltyMember",
      "child_columns": [
        "traveller_ref"
      ],
      "code": "TRV_MEMBER_TRAVELLER",
      "cross_system": true,
      "description": "Loyalty memberships belong to traveller profiles",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "Traveller",
      "parent_columns": [
        "traveller_id"
      ]
    },
    {
      "child": "Payment",
      "child_columns": [
        "pnr_ref"
      ],
      "code": "TRV_PAYMENT_PNR",
      "cross_system": true,
      "description": "Card payments reference the booking by record locator",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "Booking",
      "parent_columns": [
        "pnr_locator"
      ]
    },
    {
      "child": "Payment",
      "child_columns": [
        "stay_confirmation_ref"
      ],
      "code": "TRV_PAYMENT_STAY",
      "cross_system": true,
      "description": "Card payments reference the hotel stay by confirmation number",
      "kind": "RELATIONSHIP_TEMPLATE",
      "parent": "HotelStay",
      "parent_columns": [
        "confirmation_number"
      ]
    }
  ]
}
