package service

import (
	"errors"
	"licserver/internal/utils"
	"sync"
)

type SiteService struct {
	config *utils.Config
	mu     sync.RWMutex
}

func NewSiteService(config *utils.Config) *SiteService {
	return &SiteService{
		config: config,
	}
}

func (s *SiteService) GetSettings() utils.SiteConfig {
	s.mu.RLock()
	defer s.mu.RUnlock()
	return s.config.Site
}

func (s *SiteService) UpdateSettings(settings utils.SiteConfig) error {
	s.mu.Lock()
	defer s.mu.Unlock()

	// 更新内存中的配置
	s.config.Site = settings

	// 持久化配置到文件
	return utils.SaveConfig(s.config, "system", "更新站点设置")
}

// ValidateSettings 验证站点设置
func (s *SiteService) ValidateSettings(settings utils.SiteConfig) error {
	// 这里可以添加更多的验证逻辑
	if settings.Title == "" {
		return errors.New("站点标题不能为空")
	}
	if settings.BaseURL == "" {
		return errors.New("基础URL不能为空")
	}
	return nil
}
