package kr.itn.itnhub.provision;

/**
 * 채널 이름 규칙. VBA M06/M07의 이식이며 기존에 만들어진 채널과 반드시 일치해야 한다.
 * 규칙이 바뀌면 기존 채널을 찾지 못하고 중복 생성된다.
 */
public final class ChannelNaming {

    /** 같은 연번을 쓰지만 별도 기관으로 취급하는 유일한 예외. */
    public static final String SPECIAL_ORG_NAME = "경찰청_치안정책연구소";

    private ChannelNaming() {
    }

    public static String displayName(String orgNo, String orgName, String label) {
        return orgNo.trim() + "_" + orgName.trim() + " (" + label.trim() + ")";
    }

    public static String internalName(String orgNo, String orgName, ChannelKind kind) {
        String slug = orgNo.trim()
                .toLowerCase()
                .replace("_", "-")
                .replace(" ", "-");

        if (SPECIAL_ORG_NAME.equalsIgnoreCase(orgName.trim())) {
            return "org-" + slug + "-policy-" + kind.code();
        }
        return "org-" + slug + "-" + kind.code();
    }
}
