package com.hlab.yanalyst.domain.channel; /** * 등록 채널의 역할. * * * * ddl-auto:update 로 컬럼이 추가되므로 기존 행은 role 이 null 이다. null 은 항상 {@link #MY} 로 취급한다. */ public final class ChannelRole { public static final String MY = "MY"; public static final String OWN = "OWN"; public static final String SOURCE = "SOURCE"; public static final String RIVAL = "RIVAL"; private ChannelRole() {} /** null/공백/미인식 값을 MY 로 보정하고 대문자로 정규화한다. */ public static String normalize(String role) { if (role == null || role.isBlank()) return MY; String r = role.trim().toUpperCase(); return switch (r) { case SOURCE, RIVAL, OWN, MY -> r; default -> MY; }; } /** * 이 역할의 채널에서 수집한 영상에 붙일 출처(ChannelVideo.source). * 수집함/발굴 쿼리는 CHANNEL·SEARCH 만 보므로, OWN 은 자동으로 격리된다. */ public static String videoSource(String role) { return OWN.equals(normalize(role)) ? OWN : "CHANNEL"; } /** 피드(소재 원본/경쟁) 역할인지. */ public static boolean isFeed(String role) { String r = normalize(role); return SOURCE.equals(r) || RIVAL.equals(r); } }