⚠ Lưu ý: Giá vé có thể sẽ được tính lại chính xác sau khi bạn chọn đầy đủ hành trình
Every option here is a field on PublicWidgetConfig returned by GET /api/v1/public/flight/config. Load the live config, tweak it, and export widget-config.json for the backend to serve per agent.
Desktop card — live
Mobile card — live
Widget
Card container
Colours
Choose button
Logo, price & route
Details panel
Section visibility
Search form
Result list layout
widget-config.json
Drop this into airagent-service/src/main/resources/embed/widget-config.json (or embed/widget-config-<agentId>.json to override one agent) and restart the service. GET /api/v1/public/flight/config loads it via WidgetConfigServiceImpl; any field you omit falls back to PublicFlightCardConfig.defaults(), and agentId is always taken from the request resolver.
{
"agentName": "Sky Link Demo",
"currency": "VND",
"locale": "vi-VN",
"flightCard": {
"showAirlineLogo": true,
"showAirlineName": true,
"showFlightNumber": true,
"showAircraft": true,
"showDuration": true,
"showStops": true,
"showSeatsAvailable": true,
"showFareBasis": false,
"showCabinClass": true,
"showBaggageSummary": true,
"showFareConditions": true,
"showDetailButton": true,
"showPriceBreakdown": false,
"detailLayout": "tabs",
"priceDisplay": "total",
"accentColor": "#2563EB",
"priceColor": "#DC2626",
"currencyDisplay": "code",
"density": "comfortable",
"cardStyle": "elevated",
"cornerRadius": "soft",
"hoverEffect": "border",
"accentBar": false,
"secondaryColor": "#1E40AF",
"buttonStyle": "solid",
"buttonShape": "rounded",
"chooseLabel": "",
"logoShape": "rounded",
"logoFrame": false,
"priceEmphasis": "normal",
"routeVisual": "plane",
"showSavingsBadge": false,
"fontScale": "md"
},
"searchForm": {
"variant": "card",
"cornerRadius": "soft",
"fieldStyle": "outline",
"accentColor": "#2563EB",
"secondaryColor": "#1E40AF",
"searchButton": "icon",
"searchLabel": "",
"buttonStyle": "solid",
"selectorShape": "pill",
"density": "comfortable"
},
"flightList": {
"filterPosition": "left",
"bannerStyle": "gradient",
"sortPosition": "toolbar",
"summaryPosition": "below-banner",
"dateStripPosition": "below-summary",
"selectedFlightPosition": "top",
"columns": 1,
"listGap": "comfortable",
"showPriceNotice": true,
"accentColor": "#4F46E5",
"secondaryColor": "#6366F1"
}
}