package com.huimv.employment.common.util;

import com.huimv.employment.common.exception.BizException;
import com.huimv.employment.common.exception.ErrorCode;

/**
 * 统一社会信用代码校验工具。
 */
public final class CreditCodeUtils {

    /**
     * 18 位统一社会信用代码（不含 I/O/S/V/Z 等易混淆字母）。
     */
    private static final String CREDIT_CODE_PATTERN =
            "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$";

    private CreditCodeUtils() {
    }

    public static void validate(String creditCode) {
        if (creditCode == null || !creditCode.toUpperCase().matches(CREDIT_CODE_PATTERN)) {
            throw new BizException(ErrorCode.BAD_REQUEST, "统一社会信用代码格式不正确");
        }
    }
}
