package com.kospo.talk.payload;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.kospo.talk.model.Talk;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonIgnoreProperties(ignoreUnknown = true)
@Schema(name = "MessageDto", description = "채팅")
public class MessageDto {
    @Schema(name = "type", description = "채팅 타입")
    private String type;
    @Schema(name = "talkId", description = "채팅 아이디")
    private String talkId;
    @Schema(name = "insSabun", description = "등록자")
    private String insSabun;
    @Schema(name = "insName", description = "등록자명")
    private String insName;
    @Schema(name = "workId", description = "업무아이디")
    private String workId;
    @Schema(name = "workNm", description = "업무명")
    private String workNm;
    @Schema(name = "insDate", description = "등록일시")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSSSSS", timezone = "Asia/Seoul")
    private LocalDateTime insDate;
    @Schema(name = "message", description = "메시지")
    private String message;
    @Schema(name = "introOwner", description = "인트로 글 작성자 예로(유지보수 담당자 your 자주 찾는 질문 mine")
    private String introOwner;
    @Schema(name = "line", description = "대화내용 라인")
    private Integer line;
    @Schema(name = "talkAttachDtos", description = "전체 첨부파일 사이즈및 바이너리 정보 미리보기")
    private List<TalkAttachDto> talkAttachDtos;
    @Schema(name = "attach", description = "각 파일에 대한 정보")
    private AttachDto attach;
    @Schema(name = "channelSabun", description = "(사용자 화면용) 브로드 캐스트 전송자")
    private String channelSabun;
    @Schema(name = "reqType", description = "외부 연계 요청 코드")
    private String reqType;
    @Schema(name = "reqId", description = "외부 연계 요청 번호")
    private String reqId;
    @Schema(name = "uploading", description = "첨부파일 상태")
    private Boolean uploading;
    @Schema(name = "searchYn", description = "검색여부")
    private boolean searchYn;
}
