package org.dromara.main.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

import io.github.linpeilie.annotations.AutoMapper;
import org.dromara.main.domain.CsTicket;

@Data
@ExcelIgnoreUnannotated
@Schema(description = "客服工单视图对象")
@AutoMapper(target = CsTicket.class)
public class CsTicketVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @ExcelProperty(value = "反馈ID")
    @Schema(description = "反馈ID")
    private String id;
    @Schema(description = "关联会话ID")
    private Long sessionId;
    @ExcelProperty(value = "用户ID")
    @Schema(description = "用户ID")
    private String userId;
    @ExcelProperty(value = "用户昵称")
    @Schema(description = "用户昵称")
    private String userName;
    @ExcelProperty(value = "反馈内容")
    @Schema(description = "反馈内容")
    private String content;
    @ExcelProperty(value = "反馈渠道")
    @Schema(description = "反馈渠道")
    private String source;
    @ExcelProperty(value = "问题分类")
    @Schema(description = "问题分类")
    private String category;
    @ExcelProperty(value = "状态")
    @Schema(description = "状态")
    private String status;
    @Schema(description = "处理客服ID")
    private Long handlerId;
    @ExcelProperty(value = "客服回复")
    @Schema(description = "客服回复")
    private String handlerReply;
    @ExcelProperty(value = "创建时间")
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    @ExcelProperty(value = "完结时间")
    @Schema(description = "完结时间")
    private LocalDateTime finishTime;
    /** 沟通历史追踪 */
    @Schema(description = "沟通历史追踪")
    private List<CsMessageVo> messages;
}
