SettingsService.java
package com.archiweb.service;
import com.archiweb.model.Settings;
import com.archiweb.repository.SettingsRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Optional;
@Service
@Transactional
public class SettingsService {
private final SettingsRepository settingsRepository;
public SettingsService(SettingsRepository settingsRepository) {
this.settingsRepository = settingsRepository;
}
public boolean isChristmasModeEnabled() {
return settingsRepository.findByKey("CHRISTMAS_MODE")
.map(s -> Boolean.parseBoolean(s.getValue()))
.orElse(false);
}
public Settings setChristmasMode(boolean enabled) {
Optional<Settings> existing = settingsRepository.findByKey("CHRISTMAS_MODE");
if (existing.isPresent()) {
Settings setting = existing.get();
setting.setValue(String.valueOf(enabled));
setting.setUpdatedAt(LocalDateTime.now());
return settingsRepository.save(setting);
} else {
Settings newSetting = Settings.builder()
.key("CHRISTMAS_MODE")
.value(String.valueOf(enabled))
.description("Mode Noël activé/désactivé")
.createdAt(LocalDateTime.now())
.updatedAt(LocalDateTime.now())
.build();
return settingsRepository.save(newSetting);
}
}
public Settings getSettings(String key) {
return settingsRepository.findByKey(key)
.orElse(null);
}
}