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);
    }
}