package repository import ( "x-agents/server/internal/model" "gorm.io/gorm" ) // ModelRepository 模型仓储 type ModelRepository struct { db *gorm.DB } func NewModelRepository(db *gorm.DB) *ModelRepository { return &ModelRepository{db: db} } // FindAll 获取所有模型 func (r *ModelRepository) FindAll() ([]model.ModelInfo, error) { var models []model.ModelInfo err := r.db.Order("created_at desc").Find(&models).Error return models, err } // FindByID 根据 ID 获取模型 func (r *ModelRepository) FindByID(id string) (*model.ModelInfo, error) { var model model.ModelInfo err := r.db.Where("id = ?", id).First(&model).Error if err != nil { return nil, err } return &model, nil } // FindByName 根据名称获取模型 func (r *ModelRepository) FindByName(name string) (*model.ModelInfo, error) { var model model.ModelInfo err := r.db.Where("name = ?", name).First(&model).Error if err != nil { return nil, err } return &model, nil } // Create 创建模型 func (r *ModelRepository) Create(info *model.ModelInfo) error { return r.db.Create(info).Error } // Update 更新模型 func (r *ModelRepository) Update(id string, info *model.ModelInfo) error { return r.db.Where("id = ?", id).Updates(info).Error } // Delete 删除模型 func (r *ModelRepository) Delete(id string) error { return r.db.Where("id = ?", id).Delete(&model.ModelInfo{}).Error } // UpdateFields 更新指定字段 func (r *ModelRepository) UpdateFields(id string, fields map[string]interface{}) error { return r.db.Model(&model.ModelInfo{}).Where("id = ?", id).Updates(fields).Error }