Commit Graph

3 Commits

Author SHA1 Message Date
Max 111375b749 feat: 实现枚举配置文件映射和UNKNOWN枚举值
 新功能
- 支持通过 generator_config.yaml 配置枚举键名映射
- 实现三级优先级:配置文件 > x-enum-varnames > 智能生成
- 自动为所有枚举添加 UNKNOWN 值(整数用-9999,字符串用'UNKNOWN')
- fromValue 方法改为返回 UNKNOWN 而不是抛异常,提供更好的容错性

🔧 核心修改
- lib/core/config_repository.dart: 添加 EnumKeyMapping 和 enumKeyMappings 解析
- lib/core/config.dart: 暴露枚举映射配置
- lib/pipeline/generate/impl/model/model_content_builders.dart: 实现三级优先级枚举生成和 UNKNOWN 值
- lib/core/models/api_schema.dart: 支持 x-enum-varnames 和 x-enum-descriptions 扩展字段
- lib/pipeline/generate/impl/retrofit_api/api_return_types.dart: 修复 BasePageResult 包裹逻辑

📚 文档更新
- 新增 ENUM_QUICK_REFERENCE.md: 快速参考指南
- 新增 ENUM_KEY_NAMES_USAGE.md: 详细使用指南
- 新增 ENUM_CONFIG_MAPPING_SUMMARY.md: 功能实现总结
- 新增 ENUM_KEY_NAMES_PROPOSAL.md: 技术提案
- 更新 README.md 和 CHANGELOG.md
- 更新 generator_config.template.yaml 添加配置示例

📦 示例文件
- example/swagger_enum_example.json: Swagger 扩展字段示例
- example/enum_config_mapping_example.yaml: 完整配置示例

 测试验证
- test/pagination_wrapping_test.dart: BasePageResult 包裹测试
- 功能已通过实际生成测试验证

🎯 使用场景
1. 后端支持 OpenAPI 扩展 → 使用 x-enum-varnames
2. 后端不支持扩展 → 使用配置文件映射
3. 需要覆盖 Swagger → 使用配置文件映射
4. 快速原型开发 → 使用智能生成
2025-11-24 10:47:17 +08:00
Max 53f89940ed fix(refactor): correct import paths after pipeline migration
- Updated all internal import statements to point to the new 'pipeline' directory structure.
- Resolved all 'uri_does_not_exist' and 'undefined_class' errors caused by the refactoring.
- The project now passes 'dart analyze' with no errors.
2025-11-23 10:04:02 +08:00
Max 48863c6255 重构与迁移:
1) 配置访问全量迁移
- 移除 ConfigLoader,统一切换为 ConfigRepository(保持 SwaggerConfig 静态 API 向后兼容)
- TemplateRenderer/TemplateLoader/GOS/API 模板数据/命令层全面替换,避免重复 I/O(懒加载缓存)
- 新增迁移文档:docs/MIGRATION_CONFIG_LOADER.md

2) StringUtils 职责拆分与聚合导出
- 新增 utils/string_utils/text_cleaner.dart(文本清理/转义/截断)
- 保留 utils/string_utils.dart 作为统一导出(NamingConverter/TemplateService/TextCleaner)
- 新增 STRING_UTILS_REFACTOR_SUMMARY.md,总结重构内容与使用示例

3) 文档与概览更新
- 更新 docs/PROJECT_OVERVIEW.md:最新架构图、模块职责、生成流程与近期重构
- 更新 check_list.md:标记 string_utils/error_reporter 重构完成

4) 质量与兼容性
- dart analyze:0 error / 0 warning(仅 info 提示)
- dart test:全部通过(203/203)
- 保持命令与生成行为不变(无破坏性改动)
2025-11-22 18:18:06 +08:00