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

import com.bsmlab.dfx.agent.config.AgentConfigDto;
import lombok.*;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@ToString
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReceiveMessageDto implements Serializable {
    private String senderHostId;
    private long senderTimestamp;
    private String senderPostmanId;
    private String messageUuid;
    private AgentConfigDto.MessageType messageType;
    private long receivedTimestamp;
    private String recipientHostId;
    private String recipientDropBoxId;
    private List<RoutingHost> routingHostList;
    private String data;
    private List<String> attachFileList;// = new ArrayList<>();
    private ProcessStatus processStatus;

    public static enum ProcessStatus {
        PROCESS_SEND,
        PROCESS_RECEIVED,
        PROCESS_DONE,
        PROCESS_NOT_POSSIBLE,
        PROCESS_FAIL
    }

    @Data
    @Builder
    public static class RoutingHost implements Serializable {
        private String hostId;
        private long receivedTimestamp;
    }
}
