package domain import "errors" // 引擎的哨兵错误:调用方(store / httpapi)据此区分「配置错」与「数据错」。 var ( ErrProfileNotFound = errors.New("domain: 计分通道引用的积分模板不存在") ErrUnknownBasis = errors.New("domain: 未知的计分通道 basis") ErrCompareRequired = errors.New("domain: basis=result 的通道要求小项配置 compare=asc/desc") // 下面这 5 个是「无返回方」的哨兵:全仓(含 _test.go)只有 // internal/httpapi/response.go 的错误映射分支在引用它们,本包没有任何一行会返回。 // 来源是已经删掉的流水作废 / 增量接口(人工调整现在走 httpapi 自己的 // stateInvalid / badRequest),映射分支实际上是悬空的。 // 它们留在 domain 里的唯一理由是让那份映射仍能编译;新增功能时不要照着它们造错误, // 真要用先接线返回方。删掉需同步删映射(response.go)。 ErrLedgerNotFound = errors.New("domain: 积分流水不存在") ErrLedgerAlreadyVoided = errors.New("domain: 积分流水已作废,不能重复作废") ErrManualAdjustmentDisabled = errors.New("domain: 人工调整未启用") ErrAdjustmentReasonRequired = errors.New("domain: 人工调整必须填写理由") ErrUnknownLedgerOp = errors.New("domain: 未知的流水增量操作") // ErrPointsOverrideUnsupported:成绩上的 pointsOverride 不被引擎读取。 // 与其静默忽略(设置成功但毫无效果),不如显式报错;加减分请走人工积分调整。 // 这条有真正的返回方(scoring.go 的 ScoreEvent),与上面那组不同。 ErrPointsOverrideUnsupported = errors.New("domain: 成绩不接受 pointsOverride,请改用人工积分调整") )