refactor(#779): 消除重复枚举定义,统一到classification模块 #801

Merged
xiaoxia merged 1 commits from refactor/unified-enums-v2 into develop 2026-07-24 08:03:08 +08:00
Owner

改动内容

消除3份重复枚举定义,统一权威来源到 packages/domain/classification.py

1. AssetLibraryKind

  • 原定义:entities.py(3个值)+ classification.py(2个值,缺IMAGE)→ 双份不一致
  • 统一到:classification.py,补齐IMAGE值

2. IngestJobStatus

  • 原定义:entities.py + classification.py → 完全相同的双份
  • 统一到:classification.py

3. ClassificationStatus / ClassificationJobStatus

  • 原定义:entities.py:ClassificationStatus(带_missing_兼容)+ classification.py:ClassificationJobStatus(无兼容)
  • 统一到:ClassificationJobStatus(保留_missing_兼容方法),ClassificationStatus作为别名

向后兼容

  • entities.py 全部改为 re-export,107处 import 完全不受影响
  • domain/__init__.py 导出列表不变

测试结果

  • 4383 passed, 8 skipped

影响范围

  • 2个文件,+28/-36,净减8行
## 改动内容 消除3份重复枚举定义,统一权威来源到 `packages/domain/classification.py`: ### 1. AssetLibraryKind - 原定义:entities.py(3个值)+ classification.py(2个值,缺IMAGE)→ 双份不一致 - 统一到:classification.py,补齐IMAGE值 ### 2. IngestJobStatus - 原定义:entities.py + classification.py → 完全相同的双份 - 统一到:classification.py ### 3. ClassificationStatus / ClassificationJobStatus - 原定义:entities.py:ClassificationStatus(带_missing_兼容)+ classification.py:ClassificationJobStatus(无兼容) - 统一到:ClassificationJobStatus(保留_missing_兼容方法),ClassificationStatus作为别名 ### 向后兼容 - entities.py 全部改为 re-export,107处 import 完全不受影响 - domain/__init__.py 导出列表不变 ## 测试结果 - 4383 passed, 8 skipped ## 影响范围 - 2个文件,+28/-36,净减8行
xiaoxia added 1 commit 2026-07-24 00:31:19 +08:00
refactor(#779): 消除重复枚举定义,统一到classification模块
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m0s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 34s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 52s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 38s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m30s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m2s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 19s
AI Code Review / AI Code Review (pull_request) Successful in 5m3s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m18s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 10m34s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m44s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m29s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 49m21s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 30s
6d89dafcaf
- AssetLibraryKind: 从entities.py+classification.py双份定义,统一到classification.py
- IngestJobStatus: 同上
- ClassificationStatus/ClassificationJobStatus: 合并为ClassificationJobStatus,保留_missing_兼容方法,ClassificationStatus作为别名
- entities.py改为re-export兼容层,107处import不受影响
- 补齐classification.py中AssetLibraryKind缺失的IMAGE值
- 净减8行
Collaborator

📊 审查概览

  • 整体评价:通过
  • 严重问题数量:0 个
  • 一般建议数量:0 个

需修改的问题(严重)

💡 改进建议(一般)

良好实践

  1. 消除重复定义:将分散在 entities.py 中的枚举定义统一迁移至 classification.py,符合 DRY 原则,降低了维护成本。
  2. 优雅的向后兼容_missing_ 方法的实现非常稳健,通过规范化字符串和映射旧值,有效解决了历史脏数据导致的转换异常问题,同时默认返回 PENDING 保证了业务流程不中断。
  3. 避免循环依赖:重构后的导入方向清晰(entities -> classification),未引入循环依赖风险。
  4. 别名平滑过渡:使用 ClassificationStatus 作为 ClassificationJobStatus 的别名,确保了对外引用接口的稳定性。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 16:58:26 | 模型:

### 📊 审查概览 - 整体评价:通过 - 严重问题数量:0 个 - 一般建议数量:0 个 ### ❌ 需修改的问题(严重) 无 ### 💡 改进建议(一般) 无 ### ✅ 良好实践 1. **消除重复定义**:将分散在 `entities.py` 中的枚举定义统一迁移至 `classification.py`,符合 DRY 原则,降低了维护成本。 2. **优雅的向后兼容**:`_missing_` 方法的实现非常稳健,通过规范化字符串和映射旧值,有效解决了历史脏数据导致的转换异常问题,同时默认返回 `PENDING` 保证了业务流程不中断。 3. **避免循环依赖**:重构后的导入方向清晰(`entities` -> `classification`),未引入循环依赖风险。 4. **别名平滑过渡**:使用 `ClassificationStatus` 作为 `ClassificationJobStatus` 的别名,确保了对外引用接口的稳定性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 16:58:26 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 5679daca41 into develop 2026-07-24 08:03:08 +08:00
xiaoxia deleted branch refactor/unified-enums-v2 2026-07-24 08:03:09 +08:00

🗑️ 预览环境已清理

PR #801 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #801 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.