diff --git a/backend/internal/server/api_contract_test.go b/backend/internal/server/api_contract_test.go index c8463da39d..6a6396bc07 100644 --- a/backend/internal/server/api_contract_test.go +++ b/backend/internal/server/api_contract_test.go @@ -344,6 +344,10 @@ func TestAPIContracts(t *testing.T) { "description": "desc", "platform": "anthropic", "rate_multiplier": 1.5, + "peak_rate_enabled": false, + "peak_start": "", + "peak_end": "", + "peak_rate_multiplier": 0, "is_exclusive": false, "status": "active", "subscription_type": "standard", diff --git a/backend/internal/service/group.go b/backend/internal/service/group.go index f1e7fcb283..d116d1f83f 100644 --- a/backend/internal/service/group.go +++ b/backend/internal/service/group.go @@ -26,8 +26,8 @@ type Group struct { PeakEnd string PeakRateMultiplier float64 IsExclusive bool - Status string - Hydrated bool // indicates the group was loaded from a trusted repository source + Status string + Hydrated bool // indicates the group was loaded from a trusted repository source SubscriptionType string DailyLimitUSD *float64 @@ -190,6 +190,7 @@ func parseMinutes(hhmm string) (int, bool) { // - 未启用 / 未配置 / 配置非法(start>=end 或格式错误) / 非高峰时段 → 返回 1.0(安全降级) // - 区间为左闭右开 [PeakStart, PeakEnd),仅支持当日区间,不支持跨天(如 22:00-次日02:00) // - 时刻基于全局系统时区(timezone.Location)判定 +// // 该方法是纯函数,不读取任何外部状态,便于单测。 func (g *Group) PeakMultiplierAt(now time.Time) float64 { if g == nil || !g.IsSubscriptionType() || !g.PeakRateEnabled || g.PeakStart == "" || g.PeakEnd == "" { diff --git a/backend/internal/service/openai_gateway_service.go b/backend/internal/service/openai_gateway_service.go index 0f1a6efee2..6626292376 100644 --- a/backend/internal/service/openai_gateway_service.go +++ b/backend/internal/service/openai_gateway_service.go @@ -24,9 +24,9 @@ import ( "github.com/Wei-Shaw/sub2api/internal/pkg/apicompat" "github.com/Wei-Shaw/sub2api/internal/pkg/ip" "github.com/Wei-Shaw/sub2api/internal/pkg/logger" - "github.com/Wei-Shaw/sub2api/internal/pkg/timezone" "github.com/Wei-Shaw/sub2api/internal/pkg/openai" "github.com/Wei-Shaw/sub2api/internal/pkg/openai_compat" + "github.com/Wei-Shaw/sub2api/internal/pkg/timezone" "github.com/Wei-Shaw/sub2api/internal/pkg/xai" "github.com/Wei-Shaw/sub2api/internal/util/responseheaders" "github.com/Wei-Shaw/sub2api/internal/util/urlvalidator"