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

import cn.axzo.msg.center.service.domain.card.StateImageConfig;
import cn.axzo.msg.center.service.enums.CardBizState;
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(CardBizState bizState) {
        if (configs == null) return "";
        return configs.stream()
                .filter(StateImageConfig::isEnabled)
                .filter(cfg -> cfg.determineBizState().equals(bizState))
                .findFirst()
                .map(StateImageConfig::determineImageUrl)
                .orElse(null);
    }
}