46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package repository
|
|
|
|
import (
|
|
"seeyon-filesystem/config"
|
|
"seeyon-filesystem/model"
|
|
)
|
|
|
|
// StoragePolicyRepository 存储策略数据访问
|
|
type StoragePolicyRepository struct{}
|
|
|
|
func NewStoragePolicyRepository() *StoragePolicyRepository {
|
|
return &StoragePolicyRepository{}
|
|
}
|
|
|
|
// Create 创建存储策略
|
|
func (r *StoragePolicyRepository) Create(policy *model.StoragePolicy) error {
|
|
return config.DB.Create(policy).Error
|
|
}
|
|
|
|
// FindByID 根据ID查找
|
|
func (r *StoragePolicyRepository) FindByID(id uint64) (*model.StoragePolicy, error) {
|
|
var policy model.StoragePolicy
|
|
err := config.DB.First(&policy, id).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &policy, nil
|
|
}
|
|
|
|
// List 查询所有存储策略
|
|
func (r *StoragePolicyRepository) List() ([]model.StoragePolicy, error) {
|
|
var policies []model.StoragePolicy
|
|
err := config.DB.Order("id ASC").Find(&policies).Error
|
|
return policies, err
|
|
}
|
|
|
|
// Update 更新存储策略
|
|
func (r *StoragePolicyRepository) Update(policy *model.StoragePolicy) error {
|
|
return config.DB.Save(policy).Error
|
|
}
|
|
|
|
// Delete 删除存储策略
|
|
func (r *StoragePolicyRepository) Delete(id uint64) error {
|
|
return config.DB.Delete(&model.StoragePolicy{}, id).Error
|
|
}
|