49 lines
1.2 KiB
Go
Executable File
49 lines
1.2 KiB
Go
Executable File
package repository
|
|
|
|
import (
|
|
"github.com/rovina/zsp-backend/internal/model"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type ContractFolderRepository interface {
|
|
List() ([]model.ContractFolder, error)
|
|
GetByID(id uint) (*model.ContractFolder, error)
|
|
Create(f *model.ContractFolder) error
|
|
Update(f *model.ContractFolder) error
|
|
Delete(id uint) error
|
|
}
|
|
|
|
type contractFolderRepository struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewContractFolderRepository(db *gorm.DB) ContractFolderRepository {
|
|
return &contractFolderRepository{db: db}
|
|
}
|
|
|
|
func (r *contractFolderRepository) List() ([]model.ContractFolder, error) {
|
|
var list []model.ContractFolder
|
|
err := r.db.Order("create_time DESC").Find(&list).Error
|
|
return list, err
|
|
}
|
|
|
|
func (r *contractFolderRepository) GetByID(id uint) (*model.ContractFolder, error) {
|
|
var f model.ContractFolder
|
|
if err := r.db.First(&f, id).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &f, nil
|
|
}
|
|
|
|
func (r *contractFolderRepository) Create(f *model.ContractFolder) error {
|
|
return r.db.Create(f).Error
|
|
}
|
|
|
|
func (r *contractFolderRepository) Update(f *model.ContractFolder) error {
|
|
return r.db.Save(f).Error
|
|
}
|
|
|
|
func (r *contractFolderRepository) Delete(id uint) error {
|
|
return r.db.Delete(&model.ContractFolder{}, id).Error
|
|
}
|