package org.example.Entity.System;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class ModuleColor {
    private Map row;
    //private IPublicUtil util;
    private  String _cond;
    public String Cond;//+get与set
    private String _fontColor;
    public String FontColor;//+get与set
    public Integer FontSize;//+get
    private String _backColor;
    public String BackColor;//+get与set
    public Boolean Bold;//+get
    public Boolean IncLine;//+get
    public Boolean DeleteLine;
    public Boolean UnderLine;
    //public Arraylist ToSArray;//Arraylist需处理
    //public static String ToStyleStr(){};
    /**
     * 转换为样式数组
     * @return 包含CSS样式的ArrayList
     */
    public ArrayList<String> ToSArray() {
        ArrayList<String> styles = new ArrayList<>();

        // 处理字体颜色
        if (FontColor != null && !FontColor.isEmpty()) {
            styles.add(String.format("color:'%s'", FontColor));
        }

        // 处理背景颜色
        if (BackColor != null && !BackColor.isEmpty()) {
            styles.add(String.format("'background-color':'%s'", BackColor));
        }

        // 处理加粗
        if (Bold != null && Bold) {
            styles.add("'font-weight':600");
        }

        // 处理字体大小
        if (FontSize != null && FontSize > 0) {
            styles.add(String.format("'font-size':'%dpx'", FontSize));
        }

        // 处理斜体
        if (IncLine != null && IncLine) {
            styles.add("'font-style':'italic'");
        }

        // 处理删除线和下划线（注意：删除线优先级高于下划线）
        if (DeleteLine != null && DeleteLine) {
            styles.add("'text-decoration':'line-through'");
        } else if (UnderLine != null && UnderLine) {
            styles.add("'text-decoration':'underline'");
        }

        return styles;
    }

    /**
     * 将样式数组转换为样式字符串
     * @param styles 样式数组
     * @return 格式化后的CSS样式字符串，如"{color:'red', 'font-weight':600}"
     */
    public static String ToStyleStr(List<String> styles) {
        if (styles == null || styles.isEmpty()) {
            return null;
        }

        // 拼接样式项为逗号分隔的字符串
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < styles.size(); i++) {
            sb.append(styles.get(i));
            if (i < styles.size() - 1) {
                sb.append(",");
            }
        }

        return String.format("{%s}", sb);
    }

}
