"""教学契约：只使用虚构订单，不连接业务系统。

金额、上传和退款不在本示例能力范围内。质量尚未核验是合法状态，
不能为了得出明确结论把客户陈述改成系统事实。
"""
import hashlib
import json

ORDER = {
    "order_id": "A1042", "tenant_id": "shop-a", "user_id": "user-417",
    "revision": 12, "status": "delivered", "days_since_delivery": 10,
    "quality_verified": False,
}
POLICY = {
    "policy_id": "P7-v2",
    "text": "经确认属于质量问题，商家承担退货运费；尚未核验时先补充证据。",
}
REPORT_FIELDS = {
    "order_id", "status", "days_since_delivery", "quality_verified",
    "policy_id", "freight_decision",
}
REPORT_SCHEMA = {
    "type": "object",
    "properties": {
        "order_id": {"type": "string"},
        "status": {"type": "string"},
        "days_since_delivery": {"type": "integer"},
        "quality_verified": {"type": "boolean"},
        "policy_id": {"type": "string"},
        "freight_decision": {"type": "string", "enum": ["merchant", "pending_verification"]},
    },
    "required": sorted(REPORT_FIELDS), "additionalProperties": False,
}

def digest(value):
    """计算规范化 JSON 摘要；用于版本比较，不能证明授权或真实性。"""
    raw = json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":"))
    return hashlib.sha256(raw.encode("utf-8")).hexdigest()

def correct_report(source):
    """固定轨迹的教学生成器；真实模型模式不调用此函数代写结果。"""
    order, policy = source["order"], source["policy"]
    return {
        "order_id": order["order_id"], "status": order["status"],
        "days_since_delivery": order["days_since_delivery"],
        "quality_verified": order["quality_verified"],
        "policy_id": policy["policy_id"],
        "freight_decision": "merchant" if order["quality_verified"] else "pending_verification",
    }
