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

61 lines
1.5 KiB
Go
Executable File

package service
import (
"time"
"github.com/rovina/zsp-backend/internal/model"
"github.com/rovina/zsp-backend/internal/repository"
)
type ContractFolderService interface {
List() ([]model.ContractFolder, error)
GetByID(id uint) (*model.ContractFolder, error)
Create(name, description string) (*model.ContractFolder, error)
Update(id uint, name, description string) error
Delete(id uint) error
}
type contractFolderService struct {
repo repository.ContractFolderRepository
}
func NewContractFolderService(repo repository.ContractFolderRepository) ContractFolderService {
return &contractFolderService{repo: repo}
}
func (s *contractFolderService) List() ([]model.ContractFolder, error) {
return s.repo.List()
}
func (s *contractFolderService) GetByID(id uint) (*model.ContractFolder, error) {
return s.repo.GetByID(id)
}
func (s *contractFolderService) Create(name, description string) (*model.ContractFolder, error) {
f := &model.ContractFolder{
Name: name,
Description: description,
CreateTime: time.Now(),
UpdateTime: time.Now(),
}
if err := s.repo.Create(f); err != nil {
return nil, err
}
return f, nil
}
func (s *contractFolderService) Update(id uint, name, description string) error {
f, err := s.repo.GetByID(id)
if err != nil {
return err
}
f.Name = name
f.Description = description
f.UpdateTime = time.Now()
return s.repo.Update(f)
}
func (s *contractFolderService) Delete(id uint) error {
return s.repo.Delete(id)
}