SuperAPI AI 工具集

go-create-repository

编程与开发

查看项目

更新于 10-15 20:29

技能介绍

用途:按 Pingo GO 模块化架构约定,为指定实体生成仓储(Repository)的端口接口与实现代码,采用端口与实现分离的双文件模式。

主要能力:生成端口接口文件 internal/modules/<module>/ports/<entity>_repository.go,包含 FindAll、FindByID、Create、Update、Delete 等方法,支持分页变体与自定义查询方法;生成实现文件 internal/modules/<module>/repository/<entity>_repository.go,基于 Gorm 与 PingoDB,内置 OTEL 追踪、错误映射与事务处理;并补充 Fx 依赖注入装配。

使用方式:先创建端口接口,再创建仓储实现,然后在模块 fx.go 中通过 fx.Provide 与 fx.Annotate 将实现绑定到接口,最后运行 make lint 与 make nilaway 校验。

关键约定:结构体仅嵌入 *database.PingoDB;构造函数必须返回指针;添加接口断言;每个方法以 trace.Span 开始并 defer 结束;查询统一使用 gorm.GModel;First 前加 .Limit(1);未找到时返回 errs.ErrRecordNotFound;Delete 检查 rowsAffected;事务用 Begin、出错回滚、最后提交;方法上方不加冗余注释,但端口接口需写详细注释。

适用场景:在遵循该架构的 Go 项目中快速、一致地新增数据访问层代码。

限制:资料未提供安装命令、版本要求、收费信息及具体平台支持范围,暂未提供。