Files
zsp-project/backend/internal/repository/company_repository.go
2026-06-03 20:59:39 +08:00

87 lines
2.2 KiB
Go
Executable File

package repository
import (
"github.com/rovina/zsp-backend/internal/model"
"gorm.io/gorm"
)
type CompanyRepository interface {
CreateFolder(f *model.CompanyFolder) error
ListFolders() ([]model.CompanyFolder, error)
GetFolderByID(id uint) (*model.CompanyFolder, error)
UpdateFolder(f *model.CompanyFolder) error
DeleteFolder(id uint) error
CreateFile(f *model.CompanyFile) error
ListFiles(folderID *uint) ([]model.CompanyFile, error)
GetFileByID(id uint) (*model.CompanyFile, error)
UpdateFile(f *model.CompanyFile) error
DeleteFile(id uint) error
}
type companyRepository struct {
db *gorm.DB
}
func NewCompanyRepository(db *gorm.DB) CompanyRepository {
return &companyRepository{db: db}
}
func (r *companyRepository) CreateFolder(f *model.CompanyFolder) error {
return r.db.Create(f).Error
}
func (r *companyRepository) ListFolders() ([]model.CompanyFolder, error) {
var list []model.CompanyFolder
err := r.db.Order("create_time DESC").Find(&list).Error
return list, err
}
func (r *companyRepository) GetFolderByID(id uint) (*model.CompanyFolder, error) {
var f model.CompanyFolder
err := r.db.First(&f, id).Error
if err != nil {
return nil, err
}
return &f, nil
}
func (r *companyRepository) UpdateFolder(f *model.CompanyFolder) error {
return r.db.Save(f).Error
}
func (r *companyRepository) DeleteFolder(id uint) error {
return r.db.Delete(&model.CompanyFolder{}, id).Error
}
func (r *companyRepository) CreateFile(f *model.CompanyFile) error {
return r.db.Create(f).Error
}
func (r *companyRepository) ListFiles(folderID *uint) ([]model.CompanyFile, error) {
var list []model.CompanyFile
q := r.db.Order("upload_time DESC")
if folderID != nil && *folderID > 0 {
q = q.Where("folder_id = ?", *folderID)
}
err := q.Find(&list).Error
return list, err
}
func (r *companyRepository) GetFileByID(id uint) (*model.CompanyFile, error) {
var f model.CompanyFile
err := r.db.First(&f, id).Error
if err != nil {
return nil, err
}
return &f, nil
}
func (r *companyRepository) UpdateFile(f *model.CompanyFile) error {
return r.db.Save(f).Error
}
func (r *companyRepository) DeleteFile(id uint) error {
return r.db.Delete(&model.CompanyFile{}, id).Error
}