package com.kt.distribution.adapter;

import com.kt.distribution.dto.ChannelDistributionResult;
import com.kt.distribution.dto.ChannelType;
import com.kt.distribution.dto.DistributionRequest;

/**
 * Channel Adapter Interface
 * 각 채널별 배포 API를 호출하는 인터페이스
 *
 * @author System Architect
 * @since 2025-10-23
 */
public interface ChannelAdapter {

    /**
     * 지원하는 채널 타입
     *
     * @return ChannelType
     */
    ChannelType getChannelType();

    /**
     * 채널로 배포 실행
     *
     * @param request DistributionRequest
     * @return ChannelDistributionResult
     */
    ChannelDistributionResult distribute(DistributionRequest request);
}
