feat(core): 新增基础仓库接口及相关模型仓库定义
- 新增 BaseRepository 泛型接口,定义通用增删改查方法 - 实现 BaseRepo 结构体及其 Insert 方法 - 定义 ProviderRepository、ModelRepository、ChannelRepository、APIKeyRepository 接口,继承基础接口 - 将模型结构 JanusModel 和 JanusProvider 重命名为 Model 和 Provider - 创建 ProviderRepo 结构体,组合基础仓库实现 Provider 仓库功能
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// BaseRepository 是一个泛型接口,定义了基本的增删改查操作
|
||||
type BaseRepository[T any] interface {
|
||||
// Insert 插入一条记录
|
||||
Insert(ctx context.Context, record *T) error
|
||||
// SelectById 根据id查询一条记录
|
||||
SelectById(ctx context.Context, id int64) (*T, error)
|
||||
// List 查询所有记录
|
||||
List(ctx context.Context) ([]*T, error)
|
||||
// Update 更新一条记录
|
||||
Update(ctx context.Context, record *T) error
|
||||
// Delete 根据id删除一条记录
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
type BaseRepo[T any] struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func (repo *BaseRepo[T]) Insert(ctx context.Context, record *T) error {
|
||||
return repo.db.WithContext(ctx).Create(record).Error
|
||||
}
|
||||
Reference in New Issue
Block a user