package com.bsmlab.dfx.agent.listener.dto;

import lombok.*;

@ToString
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
/*
 * Listen 프로세스
 * 1. listener 수신
 * 2. 수신 메시지 저장 (파일 저장 후 메시지 큐(DropBoxQueue) 에 추가)
 * 3. 수신 메시지 저장 완료 Ack 전달 (result : RECEIVE_SUCCESS)
 * 3.1 수신 메시지 저상 싪패시 Ack 전달 (result : RECEIVE_FAIL)
 * 4. Worker 동작 (메지시 큐에서 가져오고 저장된 메시지를 규칙에 맞게 처리)
 * 4.1 Worker 동작 성공시 sender 에게 처리완료 Ack 전달 (result : PROCESS_SUCCESS)
 * 4.2 Worker 동작 실패시 sender 에게 처리오류 Ack 전달 (result : PROCESS_FAIL)
 */
public class AckDto {
    private ResultType result;
    private String resultText;
    private String messageUuid;

    public static enum ResultType {
        RECEIVE_SUCCESS,
        RECEIVE_FAIL,
        PROCESS_SUCCESS,
        PROCESS_FAIL,
        TRANSFER_SUCCESS,
        TRANSFER_FAIL
    }
}
