package org.xyzh.api.workcase.vo;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.xyzh.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import com.alibaba.fastjson2.annotation.JSONField;

/**
 * 会议转录记录VO
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "会议转录记录VO")
public class MeetingTranscriptionVO extends BaseVO {
    private static final long serialVersionUID = 1L;
    
    @Schema(description = "转录记录ID")
    private String transcriptionId;
    
    @Schema(description = "会议ID")
    private String meetingId;
    
    @Schema(description = "说话人ID")
    private String speakerId;
    
    @Schema(description = "说话人名称")
    private String speakerName;
    
    @Schema(description = "说话人类型：guest-来客 agent-客服")
    private String speakerType;
    
    @Schema(description = "转录文本内容")
    private String content;
    
    @Schema(description = "原始转录结果")
    private String contentRaw;
    
    @Schema(description = "语言")
    private String language;
    
    @Schema(description = "识别置信度（0-1）")
    private Double confidence;
    
    @Schema(description = "语音开始时间", format = "date-time")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date speechStartTime;
    
    @Schema(description = "语音结束时间", format = "date-time")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date speechEndTime;
    
    @Schema(description = "语音时长（毫秒）")
    private Integer durationMs;
    
    @Schema(description = "音频片段URL")
    private String audioUrl;
    
    @Schema(description = "片段序号")
    private Integer segmentIndex;
    
    @Schema(description = "是否最终结果")
    private Boolean isFinal;
    
    @Schema(description = "服务提供商")
    private String serviceProvider;
}
