desktop/src-tauri/crates/core/src/storage/pricing.rs
第 1 条注释,第 1 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1
//! F2 价格快照持久化、日成本回填与费用汇总查询。第 2 条注释,第 2 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:2
//!(空行)第 3 条注释,第 3 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:3
//! 维护模型(沿用 daily_usage 的封存语义):第 4 条注释,第 4 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:4
//! - 事件批次提交后按受影响日回填 `daily_cost_usage`(只重写未封存日);第 5 条注释,第 5 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:5
//! - 明细事件过期删除时,保留层在日成本行上封存(sealed=1),历史金额不再改写;第 6 条注释,第 6 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:6
//! - 价格快照导入不触发既有估算重算;重算仅在数据修订(事件批次)或用户显式第 7 条注释,第 7 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:7
//! 请求(`recompute_unsealed_cost_days`)时进行并更新引用。第 8 条注释,第 20 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:20
/// 费用行 kind:本程序按发生时价的估算。第 9 条注释,第 22 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:22
/// 费用行 kind:来源记录金额(EventInput.cost,Reported)。第 10 条注释,第 24 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:24
/// 费用行 kind:来源自己给出的估算金额(EventInput.cost,Estimated)。第 11 条注释,第 27 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:27
/// 快照导入结果(A10:同 ID 同内容幂等跳过)。第 12 条注释,第 35 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:35
/// 价格快照摘要(界面展示:来源、年龄、行数)。第 13 条注释,第 49 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:49
/// 日成本回填结果。第 14 条注释,第 75 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:75
/// 导入价格快照(同 ID 同内容幂等;同 ID 异内容报错——修正须换快照 ID)。第 15 条注释,第 87 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:87
/// 幂等导入仓库种子快照(应用启动时调用;不触发任何估算重算)。第 16 条注释,第 105 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:105
// 保留原始种子快照的公开返回值。第 17 条注释,第 109 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:109
/// 载入全部价格行(估算用价格簿)。第 18 条注释,第 114 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:114
/// 价格快照列表(含行数)。第 19 条注释,第 143 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:143
/// 采集后费用回填的选日:返回时区下"修订号大于 `revision_before` 的第 20 条注释,第 144 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:144
/// 未封存日"(本轮事件批次重写过的日;封存日不动)。调用方在刷新起点第 21 条注释,第 145 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:145
/// 捕获 revision_before——分级保留在扫描后还会 bump 修订号,不能用第 22 条注释,第 146 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:146
/// "当前修订号相等"过滤。第 23 条注释,第 165 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:165
/// 匹配规则更改后,一次性修正仍保留的未封存估算。第 24 条注释,第 166 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:166
/// 价格目录刷新不会更改此标记或历史金额。第 25 条注释,第 189 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:189
/// 回填单日成本(事件批次提交后/显式重算调用;只重写未封存日)。第 26 条注释,第 190 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:190
/// 该日无明细事件时不重建(历史行可能来自已过期的明细,保持不动)。第 27 条注释,第 208 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:208
/// 显式重算:回填时区下所有"仍有明细事件的未封存日"。第 28 条注释,第 240 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:240
/// 历史估算和来源金额取自日成本行;当前参考价覆盖与用量统计相同的范围,第 29 条注释,第 241 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:241
/// 互斥使用仍保留的明细或归档用量进行计算。第 30 条注释,第 246 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:246
/// 当前参考价可按本地小时筛选;历史日成本保持不变。第 31 条注释,第 299 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:299
// 1) 日成本行(按发生时价 + 来源金额)。第 32 条注释,第 425 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:425
// currency='' 行只携带未计价计数。第 33 条注释,第 461 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:461
// 未计价原因直方图(currency='' 行聚合)。第 34 条注释,第 483 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:483
// 数据修订引用(该范围成本行的最大修订号)。第 35 条注释,第 495 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:495
// 2) 按当前价格模拟,覆盖相同视图的明细与归档。第 36 条注释,第 586 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:586
/// 按当前价格模拟:明细与用量查询选中的封存汇总互斥计价。第 37 条注释,第 619 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:619
// 仍保留的明细可能与导入或封存的汇总同时存在。第 38 条注释,第 620 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:620
// 按完整来源分区匹配,只统计其中一种记录。第 39 条注释,第 794 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:794
// 在每个展示日、模型、币种或不可拆分的归档期间内,先累加各费用项的精确分子,第 40 条注释,第 795 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:795
// 然后舍入;按这些金额计算合计,使表格各行与合计一致。第 41 条注释,第 902 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:902
/// 事务内导入快照(幂等:同 ID 同内容跳过;同 ID 异内容拒绝)。第 42 条注释,第 1000 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1000
/// 旧库中的内容哈希只覆盖价格字段;重复导入还须核对来源元数据和行注释,第 43 条注释,第 1001 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1001
/// 否则同 ID 修改这些字段会被误判为幂等。保留旧哈希算法以兼容已导入快照。第 44 条注释,第 1056 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1056
/// 生成忽略大小写的 SQL 筛选条件;选择 unknown 时,空值和 NULL 也匹配,第 45 条注释,第 1057 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1057
/// 与 query::Filters 一致;其他选择不匹配空值。第 46 条注释,第 1058 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1058
/// 调用方提供固定列名;筛选值中的单引号会被剔除。第 47 条注释,第 1134 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1134
/// 所属来源已核对、符合时间和筛选条件的 model_call 或 usage_observation 事件。第 48 条注释,第 1135 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1135
/// token 字段的 quality 不是 reported/derived 时设为 None。第 49 条注释,第 1144 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1144
/// 来源记录金额(cost_* 列;Reported/Estimated 分别成行)。第 50 条注释,第 1277 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1277
/// 单日回填的事务内实现:删除未封存成本行 → 事件计价 + 来源金额 → 重插。第 51 条注释,第 1308 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1308
// 累计键:instance/agent/provider/model/currency/kind。第 52 条注释,第 1424 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1424
// 1) 按发生时价估算。第 53 条注释,第 1484 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1484
// 2) 来源记录金额(reported / 来源自身估算,分列)。第 54 条注释,第 1577 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1577
/// 费用筛选与 query::Filters 一致:不同字段使用 AND,同一字段使用 OR;第 55 条注释,第 1578 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1578
/// "unknown" 匹配空值;instances Some([]) = 无可用来源)。第 56 条注释,第 1587 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1587
/// 费用汇总请求。第 57 条注释,第 1591 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1591
/// 本地日 YYYY-MM-DD(含端点)。第 58 条注释,第 1599 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1599
/// 按币种分列的金额行(不同币种不合并;E8)。第 59 条注释,第 1603 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1603
/// 归档中各请求的上下文档位未知时,对同一组已计价费用项给出上界。第 60 条注释,第 1622 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1622
/// 官方提供商回退计价的事件数(无精确匹配时参考官方按量价)。第 61 条注释,第 1725 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1725
/// 单一估算模式的汇总(按币种行 + 未计价原因)。第 62 条注释,第 1729 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1729
/// 未计价原因直方图(reason → 事件数)。第 63 条注释,第 1731 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1731
/// 模拟模式的评估时点/明细受限标记(at_time 不用)。第 64 条注释,第 1736 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1736
/// 费用汇总响应(估算引用 data_revision 与 price_basis 快照集合)。第 65 条注释,第 1739 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1739
/// 按发生时价估算(持久化日成本行)。第 66 条注释,第 1741 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1741
/// 来源记录金额(reported + 来源自身估算,分列币种)。第 67 条注释,第 1743 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1743
/// 按当前价格模拟(互斥使用明细或归档中的已知用量)。第 68 条注释,第 1745 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1745
/// at_time 引用的价格快照。第 69 条注释,第 1777 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1777
/// 封存日成本行(明细层保留截止时调用;历史金额不再改写)。第 70 条注释,第 1790 行
desktop/src-tauri/crates/core/src/storage/pricing.rs:1790
/// 日层清理时同步清理日成本行(随日层保留期;与 daily_usage 同 cutoff)。