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 }