package org.dromara.main.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.main.domain.CsSession;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@AutoMapper(target = CsSession.class)
public class CsSessionVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 会话ID
     */
    @JsonProperty("sessionId")
    private Long id;

    /**
     * 会话编号
     */
    private String sessionNo;

    /**
     * 会话类型
     */
    private Integer sessionType;

    /**
     * 发起用户ID
     */
    private Long fromUserId;

    /**
     * 发起方昵称
     */
    private String fromUserName;

    /**
     * 发起方头像
     */
    private String fromUserAvatar;

    /**
     * 坐席ID
     */
    private Long seatId;

    /**
     * 坐席名称
     */
    private String seatName;

    /**
     * 接待客服ID
     */
    private Long waiterId;

    /**
     * 接待客服名称
     */
    private String waiterName;

    /**
     * 接待客服头像
     */
    private String waiterAvatar;

    /**
     * 客服在线状态
     */
    private Boolean isOnline;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 最后一条消息
     */
    private String lastMsg;

    /**
     * 最后消息时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastMsgTime;

    /**
     * 未读消息数
     */
    private Integer unreadCount;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}
