package model import "time" // 全链路存证与确权相关模型(二期 F19/F20,对应需求22/需求23)。 // ProvenanceNode 全链路节点标识。 type ProvenanceNode string const ( NodeSubmit ProvenanceNode = "cp_submit" // CP 送审 NodeCSPSReview ProvenanceNode = "csps_review" // CSPS 合规审核 NodeIssue ProvenanceNode = "ma_issue" // 监管发码签发 NodeTranscode ProvenanceNode = "transcode" // 转码绑定 NodeIngest ProvenanceNode = "media_ingest" // 媒资库入库 NodeInject ProvenanceNode = "cdn_inject" // 运营商 CDN 注入 ) // ProvenanceEvent 全链路存证事件(需求22-AC1/AC3):带时间戳、操作方、不可篡改。 type ProvenanceEvent struct { MACode string `json:"ma_code"` Node ProvenanceNode `json:"node"` HashValue string `json:"hash_value"` // 该节点经手的内容哈希(可空,如纯审核结论) Operator string `json:"operator"` // 操作方标识 Detail string `json:"detail"` Timestamp time.Time `json:"timestamp"` } // AccountabilityReport 责任界定取证报告(需求22-AC2/AC4)。 type AccountabilityReport struct { MACode string `json:"ma_code"` Trail []ProvenanceEvent `json:"trail"` BaselineHash string `json:"baseline_hash"` // 发码时绑定的基准哈希 FirstChange *ProvenanceEvent `json:"first_change"` // 首次发生哈希变化的节点(nil=全程一致) Consistent bool `json:"consistent"` // 全程审播一致 Conclusion string `json:"conclusion"` } // CopyrightEvidence 版权确权证据链(需求23-AC1/AC2)。 type CopyrightEvidence struct { MACode string `json:"ma_code"` Title string `json:"title"` ContentHash string `json:"content_hash"` Issuer string `json:"issuer"` IssueDate string `json:"issue_date"` ChainAnchor string `json:"chain_anchor"` // 上链锚定(tx/摘要) FirstSeenAt time.Time `json:"first_seen_at"` // 最早登记时间戳(谁先锁定谁有权) Trail []ProvenanceEvent `json:"trail"` Statement string `json:"statement"` } // InfringeMatch 疑似侵权命中(需求23-AC3)。 type InfringeMatch struct { MACode string `json:"ma_code"` Title string `json:"title"` Distance int `json:"hamming_distance"` // 感知哈希汉明距离,越小越相似 Similarity string `json:"similarity"` // high/medium }