package com.qqchen.deploy.backend.notification.config;

import freemarker.template.Configuration;
import freemarker.template.TemplateExceptionHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;

/**
 * FreeMarker配置
 *
 * @author qqchen
 * @since 2025-11-12
 */
@Component
public class FreeMarkerConfig {
    
    @Bean
    public Configuration freemarkerConfig() {
        Configuration config = new Configuration(Configuration.VERSION_2_3_32);
        
        // 设置默认编码
        config.setDefaultEncoding(StandardCharsets.UTF_8.name());
        
        // 设置异常处理器
        config.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
        
        // 设置日期格式
        config.setDateFormat("yyyy-MM-dd");
        config.setTimeFormat("HH:mm:ss");
        config.setDateTimeFormat("yyyy-MM-dd HH:mm:ss");
        
        // 设置数字格式（避免科学计数法）
        config.setNumberFormat("0.######");
        
        // 设置布尔值格式
        config.setBooleanFormat("true,false");
        
        // 禁用自动转义（因为我们可能需要输出HTML）
        config.setAutoEscapingPolicy(Configuration.DISABLE_AUTO_ESCAPING_POLICY);
        
        return config;
    }
}
