package kr.itn.itnhub.provision;

/**
 * 채널 이름 규칙. VBA M06/M07의 이식이며 기존에 만들어진 채널과 반드시 일치해야 한다.
 * 규칙이 바뀌면 기존 채널을 찾지 못하고 중복 생성된다.
 *
 * 기관 코드({@code orgNo})는 {연번1}_{연번2} 합성 코드다(예: 008_00 경찰청,
 * 008_01 경찰청_치안정책연구소, 008_02 서울청 …). 연번 자체가 하위기관까지 구분하므로
 * 기관명에 따른 별도 특례는 없다.
 */
public final class ChannelNaming {

    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(" ", "-");

        return "org-" + slug + "-" + kind.code();
    }
}
