a18e4847c2
- 新增 BaseRepository 泛型接口,定义通用增删改查方法 - 实现 BaseRepo 结构体及其 Insert 方法 - 定义 ProviderRepository、ModelRepository、ChannelRepository、APIKeyRepository 接口,继承基础接口 - 将模型结构 JanusModel 和 JanusProvider 重命名为 Model 和 Provider - 创建 ProviderRepo 结构体,组合基础仓库实现 Provider 仓库功能
30 lines
750 B
Go
30 lines
750 B
Go
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
|
|
}
|