package cn.axzo.msg.center.message.service.card;

import cn.axzo.msg.center.service.domain.card.StateImageConfig;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;

import java.util.List;

/**
 * @author yanglin
 */
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class CardStateImageConfigs {

    private final List<StateImageConfig> configs;

    public static CardStateImageConfigs create(List<StateImageConfig> images) {
        return new CardStateImageConfigs(images);
    }

    public String determineStateImage(String bizStateCode) {
        if (configs == null) return "";
        return configs.stream()
                .filter(StateImageConfig::isEnabled)
                .filter(cfg -> cfg.getStateCode().equals(bizStateCode))
                .findFirst()
                .map(StateImageConfig::determineImageUrl)
                .orElse(null);
    }
}