package jnpf.personnels.msg;

import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;

/**
 * 人事消费源
 * @Author: peng.hao
 * @create: 2025/9/15
 */
public interface PersonnelsConsumerSourceBinder {
    String OUTPUT = "secondment-consumer-output";

    String SECONDMENT_WITHDRAWAL_OUTPUT = "secondment-withdrawal-topic";

    String SECONDMENT_WITHDRAWAL_DELAY_OUTPUT = "secondment-withdrawal-delay-topic";

    String SECONDMENT_WITHDRAWAL_EARLY_END_OUTPUT = "secondment-withdrawal-early-end-topic";

    String OnboardingOUTPUT = "personnel-onboarding-topic";

    String OnboardingFailOUTPUT = "personnel-onboarding-fail-topic";

    /**
     * 生产通道
     * @return
     */
    @Output(OUTPUT)
    MessageChannel output();

    /**
     * 借调撤销
     */
    @Output(SECONDMENT_WITHDRAWAL_OUTPUT)
    MessageChannel secondmentWithdrawal();

    /**
     * 借调延迟
     */
    @Output(SECONDMENT_WITHDRAWAL_DELAY_OUTPUT)
    MessageChannel secondmentDelay();

    /**
     * 借调提前结束
     */
    @Output(SECONDMENT_WITHDRAWAL_EARLY_END_OUTPUT)
    MessageChannel secondmentEarlyEnd();

    /**
     * 入职通道
     * @return
     */
    @Output(OnboardingOUTPUT)
    MessageChannel OnboardingOutput();

    /**
     * 入职失败通道
     */
    @Output(OnboardingFailOUTPUT)
    MessageChannel OnboardingFailOutput();
}
