用途:按 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 项目中快速、一致地新增数据访问层代码。
限制:资料未提供安装命令、版本要求、收费信息及具体平台支持范围,暂未提供。