重构:会员领域模块归并到 membership 目录

- 把 membership_catalog/cycle/limits/upgrade 四个文件移入 src/membership/ 并去掉公共前缀
- 新增 membership/mod.rs 统一声明子模块并按依赖顺序导出
- lib.rs 改为 pub mod membership,删除旧的四个模块声明
- membership/upgrade.rs 内部引用改为同级模块路径
- 无行为变化,cargo test -p module-runtime 全通过

Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
2026-10-02 14:21:01 +08:00
parent 2b77fa08c3
commit ba22d178d3
6 changed files with 25 additions and 11 deletions
+2 -8
View File
@@ -4,15 +4,8 @@ pub mod civil_calendar;
pub use civil_calendar::*;
mod llm_billing;
pub use llm_billing::*;
mod membership_cycle;
pub use membership_cycle::*;
mod membership_limits;
pub use membership_limits::*;
mod membership_catalog;
pub use membership_catalog::*;
mod membership_upgrade;
pub use membership_upgrade::*;
mod application;
pub mod membership;
pub use agc_models::*;
mod commands;
mod domain;
@@ -23,6 +16,7 @@ pub use application::*;
pub use commands::*;
pub use domain::*;
pub use errors::*;
pub use membership::*;
use shared_kernel::format_rfc3339 as format_shared_rfc3339;
use time::OffsetDateTime;
@@ -0,0 +1,20 @@
//! 会员计费领域层(纯函数,无 IO)。
//!
//! 只放会员侧的规则计算:档位目录与解析、自然月账期推进、并发上限哨兵与补差升级报价。
//! SpacetimeDB 写入与事务编排留在 `spacetime-module`,HTTP 契约留在 `api-server`。
//!
//! 子模块按依赖顺序排列:
//! - [`catalog`]:档位枚举 → 可下单套餐(价格 / 每期泥点 / 模型权限 / 并发)。
//! - [`cycle`]:北京时间自然月账期(1/31 → 2/28 → 3/31,每期从原始锚点重算)。
//! - [`limits`]:并发上限哨兵,`>= 128` 视为「不设上限」。
//! - [`upgrade`]:补差升级报价与允许操作矩阵。
mod catalog;
mod cycle;
mod limits;
mod upgrade;
pub use catalog::*;
pub use cycle::*;
pub use limits::*;
pub use upgrade::*;
@@ -15,8 +15,8 @@
use serde::{Deserialize, Serialize};
use crate::membership_catalog::resolve_runtime_profile_membership_plan_snapshot;
use crate::membership_cycle::membership_cycle_remaining_micros;
use super::catalog::resolve_runtime_profile_membership_plan_snapshot;
use super::cycle::membership_cycle_remaining_micros;
use crate::{RuntimeProfileMembershipCycleKind, RuntimeProfileMembershipPlan};
/// 比例分母:百万分之一。
@@ -194,7 +194,7 @@ fn ceil_div(numerator: u128, denominator: u128) -> u64 {
#[cfg(test)]
mod tests {
use super::*;
use crate::membership_cycle::beijing_local_micros;
use crate::membership::cycle::beijing_local_micros;
const DAY_MICROS: i64 = 86_400_000_000;