package com.brilliance.isc.common.transaction.newcheck.txfmod;

import com.brilliance.isc.bo.Txpreg;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.common.util.StringUtils;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Component
public class TxpregValidator extends AbstractModuleValidator<Txpreg> {
    private static Logger log = LoggerFactory.getLogger(TxpregValidator.class);

    @Override
    public Map<String, String> validate(Txpreg vo, int index) {
        Map<String, String> maps = new HashMap<>();
        maps.putAll(super.validate(vo, index));
        return maps;
    }

    @Validate(path = "txfmod.reglst.%s.txncd")
    public ValidResult checkTxncd(Txpreg vo) {
        if (StringUtils.isEmpty(vo.getTxncd())) {
            return ValidResult.build(false, "交易编码为空");
        }
        return null;
    }

    @Validate(path = "txfmod.reglst.%s.txnccy")
    public ValidResult checkTxnccy(Txpreg vo) {
        if (StringUtils.isEmpty(vo.getTxnccy())) {
            return ValidResult.build(false, "付汇币种为空");
        }
        return null;
    }

    @Validate(path = "txfmod.reglst.%s.pymtamt")
    public ValidResult checkPaytamt(Txpreg vo) {
        if (MdaUtils.compareTo(vo.getPymtamt(),0) <= 0) {
            return ValidResult.build(false, "付汇金额为空");
        }
        return null;
    }


}
