417 lines
13 KiB
JSON
417 lines
13 KiB
JSON
{
|
|
"metadata": {
|
|
"schema": "arr-synthetic-business-cases/v1",
|
|
"source": "locally_authored_synthetic_data",
|
|
"synthetic": true,
|
|
"hotel_id": "ARR_SYNTHETIC_NOT_ORACLE",
|
|
"business_date": "2026-09-15",
|
|
"intended_use": "离线检验取数后的业务加工;日期仅为可替换的测试输入",
|
|
"is_oracle_response": false,
|
|
"oracle_api_verified": false,
|
|
"production_import_allowed": false,
|
|
"contract_note": "此文件是测试用业务数据模型,不是 OHIP 请求/响应契约,不可直接提交酒店接口或正式上传入口。",
|
|
"pricing_reference": "arr-opera-daily-ingest/references/价格对照.xlsx"
|
|
},
|
|
"normal_cases": [
|
|
{
|
|
"id": "S01",
|
|
"description": "QBD,一间一晚",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-001",
|
|
"DISP_ROOM_NO": "SIM-ROOM-001",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人001",
|
|
"RES_COMMENT": "SIM-GROUP-001",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 1,
|
|
"REAL PRICE": "1800.00",
|
|
"TOTAL PRICE": "1800.00",
|
|
"channel": "QBD"
|
|
}
|
|
},
|
|
{
|
|
"id": "S02",
|
|
"description": "QBD,两间三晚,含儿童",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 1,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-002",
|
|
"DISP_ROOM_NO": "SIM-ROOM-002",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人002",
|
|
"RES_COMMENT": "SIM-GROUP-002",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 2,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-18"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 3,
|
|
"REAL PRICE": "1800.00",
|
|
"TOTAL PRICE": "10800.00",
|
|
"channel": "QBD"
|
|
}
|
|
},
|
|
{
|
|
"id": "S03",
|
|
"description": "联泰散客,一间两晚",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "LIAN TAI",
|
|
"CONFIRMATION_NO": "SIM-CONF-003",
|
|
"DISP_ROOM_NO": "SIM-ROOM-003",
|
|
"EFFECTIVE_RATE_AMOUNT": "1400.00",
|
|
"FULL_NAME": "模拟客人003",
|
|
"RES_COMMENT": "SIM-GROUP-003",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "LBLT",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-17"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 2,
|
|
"REAL PRICE": "2800.00",
|
|
"TOTAL PRICE": "5600.00",
|
|
"channel": "LIANTAI-FIT"
|
|
}
|
|
},
|
|
{
|
|
"id": "S04",
|
|
"description": "Rainbow,适用零价规则",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T- Rainbow Holiday Service",
|
|
"CONFIRMATION_NO": "SIM-CONF-004",
|
|
"DISP_ROOM_NO": "SIM-ROOM-004",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人004",
|
|
"RES_COMMENT": "SIM-GROUP-004",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "LBMS",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-17"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 2,
|
|
"REAL PRICE": "0.00",
|
|
"TOTAL PRICE": "0.00",
|
|
"channel": "DY-AI-Easy-KB"
|
|
}
|
|
},
|
|
{
|
|
"id": "S05",
|
|
"description": "Go Easy,两间一晚,适用零价规则",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T- Guangzhou Go Easy",
|
|
"CONFIRMATION_NO": "SIM-CONF-005",
|
|
"DISP_ROOM_NO": "SIM-ROOM-005",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人005",
|
|
"RES_COMMENT": "SIM-GROUP-005",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 2,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "LBSM",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 1,
|
|
"REAL PRICE": "0.00",
|
|
"TOTAL PRICE": "0.00",
|
|
"channel": "DY-AI-Easy-KB"
|
|
}
|
|
},
|
|
{
|
|
"id": "S06",
|
|
"description": "QBD,当天到店当天离店",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-006",
|
|
"DISP_ROOM_NO": "SIM-ROOM-006",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人006",
|
|
"RES_COMMENT": "",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-15"
|
|
},
|
|
"expected": {
|
|
"NIGHTS": 0,
|
|
"REAL PRICE": "1800.00",
|
|
"TOTAL PRICE": "0.00",
|
|
"channel": "QBD"
|
|
}
|
|
}
|
|
],
|
|
"edge_cases": [
|
|
{
|
|
"id": "E01",
|
|
"description": "费率代码不在当前处理范围",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-101",
|
|
"DISP_ROOM_NO": "SIM-ROOM-101",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人101",
|
|
"RES_COMMENT": "SIM-GROUP-101",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "SIM-NOT-IN-WHITELIST",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected_behavior": "按现有白名单排除;不能为通过测试扩大白名单",
|
|
"verification_scope": "existing_whitelist"
|
|
},
|
|
{
|
|
"id": "E02",
|
|
"description": "房号缺失",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-102",
|
|
"DISP_ROOM_NO": "",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人102",
|
|
"RES_COMMENT": "SIM-GROUP-102",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected_behavior": "记录缺项,不能补造房号进入正式报表",
|
|
"verification_scope": "existing_record_validation"
|
|
},
|
|
{
|
|
"id": "E03",
|
|
"description": "费率代码缺失",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-103",
|
|
"DISP_ROOM_NO": "SIM-ROOM-103",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人103",
|
|
"RES_COMMENT": "SIM-GROUP-103",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected_behavior": "取数阶段报缺项;不能把未知费率当成已知的不在白名单",
|
|
"verification_scope": "future_api_input_gate"
|
|
},
|
|
{
|
|
"id": "E04",
|
|
"description": "Oracle 标记价格不可展示",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-104",
|
|
"DISP_ROOM_NO": "SIM-ROOM-104",
|
|
"EFFECTIVE_RATE_AMOUNT": null,
|
|
"FULL_NAME": "模拟客人104",
|
|
"RES_COMMENT": "SIM-GROUP-104",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"source_context": {
|
|
"rate_suppressed": true,
|
|
"amount_present_in_upstream": "900.00"
|
|
},
|
|
"expected_behavior": "不得用隐藏金额计算;停留在待核实状态",
|
|
"verification_scope": "future_api_input_gate"
|
|
},
|
|
{
|
|
"id": "E05",
|
|
"description": "公司与旅行社关联不同",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "",
|
|
"CONFIRMATION_NO": "SIM-CONF-105",
|
|
"DISP_ROOM_NO": "SIM-ROOM-105",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人105",
|
|
"RES_COMMENT": "SIM-GROUP-105",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"source_context": {
|
|
"associated_profiles": [
|
|
{
|
|
"synthetic_profile_id": "SIM-COMPANY-001",
|
|
"role": "Company",
|
|
"name": "T / Q.B.D. TRAVEL GROUP"
|
|
},
|
|
{
|
|
"synthetic_profile_id": "SIM-AGENCY-001",
|
|
"role": "TravelAgent",
|
|
"name": "LIAN TAI"
|
|
}
|
|
]
|
|
},
|
|
"expected_behavior": "保留两个候选;待关联规则验证后确定用于定价和渠道的对象",
|
|
"verification_scope": "unresolved_mapping"
|
|
},
|
|
{
|
|
"id": "E06",
|
|
"description": "两条不同的预订 GEN 备注",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-106",
|
|
"DISP_ROOM_NO": "SIM-ROOM-106",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人106",
|
|
"RES_COMMENT": "",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"source_context": {
|
|
"notes": [
|
|
{
|
|
"type": "GEN",
|
|
"location": "RESERVATION",
|
|
"internal": false,
|
|
"text": "SIM-GROUP-A"
|
|
},
|
|
{
|
|
"type": "GEN",
|
|
"location": "RESERVATION",
|
|
"internal": true,
|
|
"text": "SIM-GROUP-B"
|
|
}
|
|
]
|
|
},
|
|
"expected_behavior": "保留两条及其属性;不能凭接口返回顺序擅自选团号",
|
|
"verification_scope": "unresolved_mapping"
|
|
},
|
|
{
|
|
"id": "E07",
|
|
"description": "与 S01 同房同日,离店日期不同",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-107",
|
|
"DISP_ROOM_NO": "SIM-ROOM-001",
|
|
"EFFECTIVE_RATE_AMOUNT": "900.00",
|
|
"FULL_NAME": "模拟客人107",
|
|
"RES_COMMENT": "SIM-GROUP-107",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-18"
|
|
},
|
|
"source_context": {
|
|
"conflicts_with": "S01"
|
|
},
|
|
"expected_behavior": "与 S01 联合测试;待接口来源的重复记录取舍规则确定后选择,不能以到达顺序决定",
|
|
"verification_scope": "unresolved_mapping"
|
|
},
|
|
{
|
|
"id": "E08",
|
|
"description": "公司与费率存在,但金额无价格表匹配",
|
|
"record": {
|
|
"BLOCK_CODE": "",
|
|
"ADULTS": 2,
|
|
"CHILDREN": 0,
|
|
"COMPANY_NAME": "T / Q.B.D. TRAVEL GROUP",
|
|
"CONFIRMATION_NO": "SIM-CONF-108",
|
|
"DISP_ROOM_NO": "SIM-ROOM-108",
|
|
"EFFECTIVE_RATE_AMOUNT": "12345.67",
|
|
"FULL_NAME": "模拟客人108",
|
|
"RES_COMMENT": "SIM-GROUP-108",
|
|
"TRACE_TEXT": "",
|
|
"NO_OF_ROOMS": 1,
|
|
"PRODUCTS": "",
|
|
"RATE_CODE": "GRPA1",
|
|
"ROOM_CATEGORY_LABEL": "SIM-ROOM-TYPE",
|
|
"ARRIVAL": "2026-09-15",
|
|
"DEPARTURE": "2026-09-16"
|
|
},
|
|
"expected_behavior": "进入现有价格待复核流程,不生成已通过的正式结果",
|
|
"verification_scope": "existing_price_lookup"
|
|
}
|
|
]
|
|
}
|