refactor: 将 OpType 字段从枚举类型改为 string 类型

主要变更:
- Operation.OpType: Type → string
- NewFullOperation 参数: opType Type → opType string
- IsValidOpType 参数: opType Type → opType string
- operationMeta.OpType: *Type → *string
- queryclient.ListRequest.OpType: model.Type → string

优点:
- 更灵活,支持动态扩展操作类型
- 不再受限于预定义的枚举常量
- 简化类型转换逻辑

兼容性:
- Type 常量定义保持不变 (OpTypeCreate, OpTypeUpdate 等)
- 使用时需要 string() 转换: string(model.OpTypeCreate)
- 所有单元测试已更新并通过 (100%)

测试结果:
 api/adapter - PASS
 api/highclient - PASS
 api/logger - PASS
 api/model - PASS
 api/persistence - PASS
 api/queryclient - PASS
 internal/* - PASS
This commit is contained in:
ryan
2025-12-24 16:48:00 +08:00
parent 4b72a37120
commit a90d853a6e
16 changed files with 52 additions and 52 deletions

View File

@@ -40,7 +40,7 @@ func (r *OperationRecord) ToModel() *model.Operation {
RequestBodyHash: &r.RequestBodyHash,
ResponseBodyHash: &r.ResponseBodyHash,
OpSource: model.Source(r.OpSource),
OpType: model.Type(r.OpType),
OpType: r.OpType,
DoPrefix: r.DOPrefix,
DoRepository: r.DORepository,
ClientIP: r.ClientIP,

View File

@@ -726,7 +726,7 @@ func createE2ETestOperations(count int) []*model.Operation {
OpID: fmt.Sprintf("e2e-op-%d-%d", timestamp, i),
Timestamp: time.Now(),
OpSource: model.OpSourceDOIP,
OpType: model.OpTypeCreate,
OpType: string(model.OpTypeCreate),
DoPrefix: "e2e-test",
DoRepository: "e2e-repo",
Doid: fmt.Sprintf("e2e/test/%d", i),

View File

@@ -57,7 +57,7 @@ func Example_dbOnly() {
// 5. 构造 Operation包含 IP 信息)
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"my-repo",
"10.1000/my-repo/doc001",
@@ -139,7 +139,7 @@ func Example_dbAndTrustlog() {
// 5. 构造 Operation
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"my-repo",
"10.1000/my-repo/doc002",
@@ -212,7 +212,7 @@ func Example_trustlogOnly() {
// 5. 构造 Operation
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"my-repo",
"10.1000/my-repo/doc003",
@@ -278,7 +278,7 @@ func Example_mysqlDatabase() {
// 5. 构造并发布 Operation
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"my-repo",
"10.1000/my-repo/doc004",
@@ -349,7 +349,7 @@ func Example_sqliteDatabase() {
// 5. 构造并发布 Operation
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"my-repo",
"10.1000/my-repo/doc005",

View File

@@ -44,7 +44,7 @@ func setupTestDB(t *testing.T) *sql.DB {
func createTestOperation(t *testing.T, opID string) *model.Operation {
op, err := model.NewFullOperation(
model.OpSourceDOIP,
model.OpTypeCreate,
string(model.OpTypeCreate),
"10.1000",
"test-repo",
"10.1000/test-repo/"+opID,