{
  "page_ir": {
    "page_id": "booking_detail",
    "page_goal": "Display comprehensive booking details including booking info, schedule info, seat info, payment info, booking timeline, and ticket section with actions to download/print ticket and cancel booking.",
    "style": {
      "tone": "professional",
      "theme": "light",
      "density": "comfortable",
      "color_intent": "blue primary with status-colored badges"
    },
    "accessibility": {
      "required_labels": [
        "booking_reference",
        "status_badge",
        "seat_list",
        "payment_info",
        "ticket_section",
        "timeline"
      ],
      "skip_navigation": true,
      "focus_management": true,
      "announce_changes": []
    },
    "responsive": {
      "breakpoints": {
        "xs": 480,
        "sm": 576,
        "md": 768,
        "lg": 992,
        "xl": 1200
      },
      "collapse_rules": [
        "info_columns_grid collapses to single column below md",
        "action_buttons stack vertically below sm"
      ],
      "hidden_on_small": [],
      "stack_on_small": []
    },
    "constraints": [
      "Page requires route param :bookingId",
      "User must be authenticated to view booking details",
      "Cancel button only shown if booking status is CONFIRMED and departure is >2 hours away"
    ],
    "seo_title": null,
    "seo_description": null
  },
  "data_ir": {
    "types": {},
    "state": {
      "bookingDetail": {
        "type": "object",
        "initial": null,
        "required": true,
        "constraints": {},
        "item_type": null
      },
      "loading": {
        "type": "boolean",
        "initial": true,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "cancelModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "cancelling": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      }
    },
    "derived": {
      "bookingStatus": {
        "type": "string",
        "expr": "state.bookingDetail?.status || ''",
        "deps": []
      },
      "paymentStatus": {
        "type": "string",
        "expr": "state.bookingDetail?.payment_status || ''",
        "deps": []
      },
      "isCancellable": {
        "type": "boolean",
        "expr": "state.bookingDetail?.status === 'CONFIRMED' && new Date(state.bookingDetail?.schedule?.departure_datetime) > new Date(Date.now() + 2 * 60 * 60 * 1000)",
        "deps": []
      },
      "ticketInfo": {
        "type": "object",
        "expr": "state.bookingDetail?.ticket || null",
        "deps": []
      },
      "bookingSeats": {
        "type": "array",
        "expr": "state.bookingDetail?.booking_seats || []",
        "deps": []
      },
      "payments": {
        "type": "array",
        "expr": "state.bookingDetail?.payments || []",
        "deps": []
      }
    }
  },
  "data_fetch_ir": {
    "endpoints": {
      "4c71b11882a044848ad9aa0de156e3fe": {
        "endpoint_id": "4c71b11882a044848ad9aa0de156e3fe",
        "module": "Booking Management",
        "endpoint": "/bookings/{booking_id}/details",
        "method": "GET",
        "path_params": {
          "booking_id": "$route.bookingId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "reservation_id",
          "booking_datetime",
          "total_amount",
          "payment_status",
          "booking_reference",
          "status",
          "created_at",
          "updated_at",
          "user",
          "schedule",
          "booking_seats",
          "ticket",
          "payments"
        ],
        "response_target": "bookingDetail",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "81e75aa75ccb4e5eae06a929ac863c2b": {
        "endpoint_id": "81e75aa75ccb4e5eae06a929ac863c2b",
        "module": "Cancellations",
        "endpoint": "/cancellations/",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "booking_id",
          "user_id",
          "cancellation_datetime",
          "reason",
          "refund_amount",
          "refund_status"
        ],
        "response_target": "cancelBooking_data",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "3c16d2a01f1847f8b23a03e0f5c518b1": {
        "endpoint_id": "3c16d2a01f1847f8b23a03e0f5c518b1",
        "module": "Booking Management",
        "endpoint": "/bookings/{booking_id}",
        "method": "PUT",
        "path_params": {
          "booking_id": "$route.bookingId"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "status",
          "payment_status"
        ],
        "response_target": "updateBookingStatus_data",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      }
    }
  },
  "data_model_ir": {
    "entities": {
      "booking": {
        "name": "Booking",
        "backend_module": "Booking Management",
        "fields": [
          "id",
          "reservation_id",
          "booking_datetime",
          "total_amount",
          "payment_status",
          "booking_reference",
          "status",
          "created_at",
          "updated_at",
          "user",
          "schedule",
          "booking_seats",
          "ticket",
          "payments"
        ],
        "computed": [],
        "display_fields": [
          "booking_reference",
          "status",
          "booking_datetime",
          "total_amount",
          "payment_status"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "cancellation": {
        "name": "Cancellation",
        "backend_module": "Cancellations",
        "fields": [
          "id",
          "booking_id",
          "user_id",
          "cancellation_datetime",
          "reason",
          "refund_amount",
          "refund_status",
          "processed_at",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "reason",
          "refund_amount",
          "refund_status"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      }
    },
    "relationships": []
  },
  "behaviour_ir": {
    "events": {
      "onPageLoad": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.loading",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "onBookingLoaded": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.loading",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "openCancelModal": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "closeCancelModal": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      }
    },
    "actions": {
      "fc096d3852bf4b68a87d86494e8bca78": {
        "action_id": "fc096d3852bf4b68a87d86494e8bca78",
        "trigger": "button_click",
        "target_component_id": "main_container",
        "operation": "read",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.loading",
            "expr": "false"
          }
        ],
        "api_endpoint": "4c71b11882a044848ad9aa0de156e3fe",
        "api_body": null,
        "side_effects": [],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "76b633861853434b9cd6cef7b99dd454": {
        "action_id": "76b633861853434b9cd6cef7b99dd454",
        "trigger": "button_click",
        "target_component_id": "cancel_booking_button",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "true"
          }
        ],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "modal_open",
            "config": {
              "modal_id": "cancel_modal"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "3f4ed8be58ce4639bd487b8e7f18bec1": {
        "action_id": "3f4ed8be58ce4639bd487b8e7f18bec1",
        "trigger": "button_click",
        "target_component_id": "confirm_cancel_button",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.cancelling",
            "expr": "true"
          }
        ],
        "api_endpoint": "81e75aa75ccb4e5eae06a929ac863c2b",
        "api_body": "{ booking_id: $route.bookingId, user_id: appContext.currentUser.userId, cancellation_datetime: new Date().toISOString(), reason: state.cancellationReason || null, refund_amount: state.bookingDetail.total_amount, refund_status: 'PENDING' }",
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Booking cancelled successfully. Refund will be processed in 5-7 business days.",
              "type": "success"
            }
          },
          {
            "type": "modal_close",
            "config": {
              "modal_id": "cancel_modal"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchBookingDetails"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "f92d549f85c74dc78de7da997bd6de69": {
        "action_id": "f92d549f85c74dc78de7da997bd6de69",
        "trigger": "button_click",
        "target_component_id": "cancel_modal_cancel_button",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.cancelModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "modal_close",
            "config": {
              "modal_id": "cancel_modal"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "6b755d5d29cb475792c1199c703afaf0": {
        "action_id": "6b755d5d29cb475792c1199c703afaf0",
        "trigger": "button_click",
        "target_component_id": "download_ticket_button",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "download",
            "config": {
              "filename": "ticket_${state.bookingDetail?.ticket?.ticket_number}.pdf",
              "source": "generate_pdf"
            }
          },
          {
            "type": "toast",
            "config": {
              "message": "Ticket download started",
              "type": "info"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "8f7a69a55bcc49bb9b8968be022b5799": {
        "action_id": "8f7a69a55bcc49bb9b8968be022b5799",
        "trigger": "button_click",
        "target_component_id": "print_ticket_button",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "custom",
            "config": {
              "handler": "window.print()"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "ceb42784740a4cd3b074c6e8dce45c1d": {
        "action_id": "ceb42784740a4cd3b074c6e8dce45c1d",
        "trigger": "button_click",
        "target_component_id": "back_link",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "navigate",
            "config": {
              "path": "/bookings"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      }
    },
    "feedback": {
      "fc096d3852bf4b68a87d86494e8bca78": {
        "action_id": "fc096d3852bf4b68a87d86494e8bca78",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": null,
        "error_message": "Failed to load booking details. Please try again.",
        "ui_updates": []
      },
      "3f4ed8be58ce4639bd487b8e7f18bec1": {
        "action_id": "3f4ed8be58ce4639bd487b8e7f18bec1",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Booking cancelled successfully. Refund will be processed in 5-7 business days.",
        "error_message": "Failed to cancel booking. Please try again.",
        "ui_updates": []
      },
      "6b755d5d29cb475792c1199c703afaf0": {
        "action_id": "6b755d5d29cb475792c1199c703afaf0",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": "Ticket downloaded successfully",
        "error_message": "Failed to download ticket",
        "ui_updates": []
      },
      "8f7a69a55bcc49bb9b8968be022b5799": {
        "action_id": "8f7a69a55bcc49bb9b8968be022b5799",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": null,
        "error_message": null,
        "ui_updates": []
      },
      "76b633861853434b9cd6cef7b99dd454": {
        "action_id": "76b633861853434b9cd6cef7b99dd454",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": null,
        "error_message": null,
        "ui_updates": []
      },
      "f92d549f85c74dc78de7da997bd6de69": {
        "action_id": "f92d549f85c74dc78de7da997bd6de69",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": null,
        "error_message": null,
        "ui_updates": []
      },
      "ceb42784740a4cd3b074c6e8dce45c1d": {
        "action_id": "ceb42784740a4cd3b074c6e8dce45c1d",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": null,
        "error_message": null,
        "ui_updates": []
      }
    }
  },
  "component_ir": {
    "library": "antd",
    "theme": {
      "primaryColor": "#1677ff",
      "secondaryColor": "#000000",
      "successColor": null,
      "warningColor": null,
      "errorColor": null,
      "fontFamily": "sans-serif",
      "fontSize": null,
      "borderRadius": 6
    },
    "components": {
      "main_container": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "minHeight": "100vh",
          "width": "100%",
          "backgroundColor": "#f5f5f5",
          "padding": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "content_wrapper": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "maxWidth": "960px",
          "margin": "0 auto",
          "width": "100%"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "back_link": {
        "type": "Button",
        "label": "← Back to My Bookings",
        "description": null,
        "bind": null,
        "onClick": "navigateBackToHistory",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "link",
          "icon": "ArrowLeftOutlined"
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "16px",
          "paddingLeft": "0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "page_header": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "justifyContent": "space-between",
          "alignItems": "center",
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "page_title": {
        "type": "Typography.Title",
        "label": "Booking Details",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "level": 2
        },
        "dynamic_props": {},
        "styles": {
          "margin": "0"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "header_actions": {
        "type": "Space",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "size": "middle"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "download_ticket_button": {
        "type": "Button",
        "label": "Download Ticket",
        "description": null,
        "bind": null,
        "onClick": "downloadTicket",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary",
          "icon": "DownloadOutlined",
          "disabled": "derived.ticketInfo === null"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "print_ticket_button": {
        "type": "Button",
        "label": "Print Ticket",
        "description": null,
        "bind": null,
        "onClick": "printTicket",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "icon": "PrinterOutlined",
          "disabled": "derived.ticketInfo === null"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_booking_button": {
        "type": "Button",
        "label": "Cancel Booking",
        "description": null,
        "bind": null,
        "onClick": "openCancelConfirmation",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "danger": true,
          "icon": "CloseCircleOutlined",
          "disabled": "!derived.isCancellable"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "info_columns_grid": {
        "type": "Row",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "gutter": [
            24,
            24
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "left_column": {
        "type": "Col",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "xs": 24,
          "lg": 16
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "right_column": {
        "type": "Col",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "xs": 24,
          "lg": 8
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "booking_info_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Booking Information",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "booking_reference_row": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": {
            "xs": 1,
            "sm": 2,
            "md": 3
          },
          "bordered": true,
          "size": "middle",
          "items": [
            {
              "label": "Booking Reference",
              "field": "state.bookingDetail.booking_reference",
              "render": "tag_copyable"
            },
            {
              "label": "Status",
              "field": "state.bookingDetail.status",
              "render": "status_badge"
            },
            {
              "label": "Booking Date & Time",
              "field": "state.bookingDetail.booking_datetime",
              "render": "datetime"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "schedule_info_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Schedule Information",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "schedule_descriptions": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": {
            "xs": 1,
            "sm": 2
          },
          "bordered": true,
          "size": "middle",
          "items": [
            {
              "label": "Route",
              "field": "state.bookingDetail.schedule.route.origin_city + ' → ' + state.bookingDetail.schedule.route.destination_city",
              "render": "text"
            },
            {
              "label": "Bus Number",
              "field": "state.bookingDetail.schedule.bus.bus_number",
              "render": "text"
            },
            {
              "label": "Bus Type",
              "field": "state.bookingDetail.schedule.bus.bus_type",
              "render": "tag"
            },
            {
              "label": "Departure",
              "field": "state.bookingDetail.schedule.departure_datetime",
              "render": "datetime"
            },
            {
              "label": "Arrival",
              "field": "state.bookingDetail.schedule.arrival_datetime",
              "render": "datetime"
            },
            {
              "label": "Amenities",
              "field": "state.bookingDetail.schedule.bus.amenities",
              "render": "tags_list"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "seat_info_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Seat Information",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "seat_table": {
        "type": "Table",
        "label": null,
        "description": null,
        "bind": "derived.bookingSeats",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "pagination": false,
          "size": "small",
          "columns": [
            {
              "title": "Seat Number",
              "dataIndex": "seat_number",
              "key": "seat_number"
            },
            {
              "title": "Seat Type",
              "dataIndex": "seat_type",
              "key": "seat_type",
              "render": "tag"
            },
            {
              "title": "Price",
              "dataIndex": "price",
              "key": "price",
              "render": "currency"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "payment_info_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Payment Information",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "payment_descriptions": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": {
            "xs": 1,
            "sm": 2
          },
          "bordered": true,
          "size": "middle",
          "items": [
            {
              "label": "Total Amount",
              "field": "state.bookingDetail.total_amount",
              "render": "currency"
            },
            {
              "label": "Payment Status",
              "field": "state.bookingDetail.payment_status",
              "render": "status_badge"
            },
            {
              "label": "Payment Method",
              "field": "derived.payments[0]?.payment_method",
              "render": "text"
            },
            {
              "label": "Transaction Date & Time",
              "field": "derived.payments[0]?.transaction_datetime",
              "render": "datetime"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "timeline_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Booking Timeline",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "booking_timeline": {
        "type": "Timeline",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "mode": "left",
          "items": [
            {
              "label": "Reservation Created",
              "description": "Seats reserved for 15 minutes",
              "timestamp_field": "state.bookingDetail.created_at",
              "color": "blue",
              "icon": "ClockCircleOutlined"
            },
            {
              "label": "Payment Completed",
              "description": "Payment processed successfully",
              "timestamp_field": "derived.payments[0]?.transaction_datetime",
              "color": "green",
              "icon": "DollarOutlined"
            },
            {
              "label": "Booking Confirmed",
              "description": "Ticket generated",
              "timestamp_field": "state.bookingDetail.booking_datetime",
              "color": "green",
              "icon": "CheckCircleOutlined"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "ticket_card": {
        "type": "Card",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Ticket",
          "bordered": false
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "ticket_content": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "textAlign": "center"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "ticket_qr_code": {
        "type": "QRCode",
        "label": null,
        "description": null,
        "bind": "derived.ticketInfo?.qr_code",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "size": 180,
          "bordered": true
        },
        "dynamic_props": {},
        "styles": {
          "margin": "0 auto 16px auto"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "ticket_descriptions": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": 1,
          "bordered": true,
          "size": "small",
          "items": [
            {
              "label": "Ticket Number",
              "field": "derived.ticketInfo?.ticket_number",
              "render": "text"
            },
            {
              "label": "Validity Status",
              "field": "derived.ticketInfo?.validity_status",
              "render": "status_badge"
            },
            {
              "label": "Issued At",
              "field": "derived.ticketInfo?.issue_datetime",
              "render": "datetime"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "no_ticket_placeholder": {
        "type": "Empty",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "description": "No ticket available for this booking"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_modal": {
        "type": "Modal",
        "label": null,
        "description": null,
        "bind": "state.cancelModalVisible",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Cancel Booking",
          "okText": "Confirm Cancellation",
          "cancelText": "Keep Booking",
          "okButtonProps": {
            "danger": true
          },
          "confirmLoading": "state.cancelling"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_modal_content": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_warning_alert": {
        "type": "Alert",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "warning",
          "showIcon": true,
          "message": "Are you sure you want to cancel this booking?",
          "description": "Refund will be processed based on cancellation policy: 100% if >24 hours before departure, 50% if 2-24 hours before departure. Refund processing takes 5-7 business days."
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_booking_summary": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": 1,
          "size": "small",
          "bordered": true,
          "items": [
            {
              "label": "Booking Reference",
              "field": "state.bookingDetail.booking_reference",
              "render": "text"
            },
            {
              "label": "Total Amount",
              "field": "state.bookingDetail.total_amount",
              "render": "currency"
            },
            {
              "label": "Estimated Refund",
              "field": "state.bookingDetail.total_amount",
              "render": "currency"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {
          "marginBottom": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancellation_reason_input": {
        "type": "Input.TextArea",
        "label": "Reason for cancellation (optional)",
        "description": null,
        "bind": "state.cancellationReason",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 3,
          "placeholder": "Please provide a reason for cancellation..."
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "confirm_cancel_button": {
        "type": "Button",
        "label": "Confirm Cancellation",
        "description": null,
        "bind": null,
        "onClick": "confirmCancelBooking",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "danger": true,
          "type": "primary",
          "loading": "state.cancelling"
        },
        "dynamic_props": {},
        "styles": {
          "display": "none"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "cancel_modal_cancel_button": {
        "type": "Button",
        "label": "Keep Booking",
        "description": null,
        "bind": null,
        "onClick": "closeCancelModalAction",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "none"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "loading_spinner": {
        "type": "Spin",
        "label": null,
        "description": null,
        "bind": "state.loading",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "size": "large",
          "tip": "Loading booking details..."
        },
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "justifyContent": "center",
          "alignItems": "center",
          "minHeight": "400px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      }
    }
  },
  "layout_ir": {
    "root": "main_container",
    "children": {
      "main_container": [
        "content_wrapper",
        "cancel_modal"
      ],
      "content_wrapper": [
        "back_link",
        "page_header",
        "loading_spinner",
        "info_columns_grid"
      ],
      "page_header": [
        "page_title",
        "header_actions"
      ],
      "header_actions": [
        "download_ticket_button",
        "print_ticket_button",
        "cancel_booking_button"
      ],
      "info_columns_grid": [
        "left_column",
        "right_column"
      ],
      "left_column": [
        "booking_info_card",
        "schedule_info_card",
        "seat_info_card",
        "payment_info_card"
      ],
      "right_column": [
        "timeline_card",
        "ticket_card"
      ],
      "booking_info_card": [
        "booking_reference_row"
      ],
      "schedule_info_card": [
        "schedule_descriptions"
      ],
      "seat_info_card": [
        "seat_table"
      ],
      "payment_info_card": [
        "payment_descriptions"
      ],
      "timeline_card": [
        "booking_timeline"
      ],
      "ticket_card": [
        "ticket_content"
      ],
      "ticket_content": [
        "ticket_qr_code",
        "ticket_descriptions",
        "no_ticket_placeholder"
      ],
      "cancel_modal": [
        "cancel_modal_content"
      ],
      "cancel_modal_content": [
        "cancel_warning_alert",
        "cancel_booking_summary",
        "cancellation_reason_input",
        "confirm_cancel_button",
        "cancel_modal_cancel_button"
      ]
    },
    "layout": {
      "main_container": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "content_wrapper": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "page_header": {
        "type": "horizontal",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "header_actions": {
        "type": "horizontal",
        "gap": 8,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "info_columns_grid": {
        "type": "grid",
        "gap": 24,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "left_column": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "right_column": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "booking_info_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "schedule_info_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "seat_info_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "payment_info_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "timeline_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "ticket_card": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "ticket_content": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "cancel_modal": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "cancel_modal_content": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      }
    },
    "layout_zones": [
      {
        "zone_id": "main_zone",
        "component": "main_container",
        "anchor": "top-left",
        "size_hint": "full-width",
        "z_layer": "base",
        "notes": "Root page container"
      },
      {
        "zone_id": "cancel_modal_zone",
        "component": "cancel_modal",
        "anchor": "center",
        "size_hint": "auto",
        "z_layer": "overlay",
        "notes": "Cancellation confirmation modal overlay"
      }
    ],
    "responsive_overrides": []
  },
  "navigation_ir": {
    "tabs": [],
    "modals": {},
    "drawers": {},
    "routes": [],
    "breadcrumb": null,
    "default_tab": null
  },
  "realtime_ir": {
    "timers": {},
    "polling": {}
  },
  "metadata": {
    "ir_version": "3.5",
    "generated_at": "",
    "source_prompt": null,
    "schema_session_id": null,
    "warnings": []
  },
  "page_data_contract": null,
  "schema_ir": null
}
