package com.rj.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * AI视频图像分析记录实体
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("video_image_analysis")
public class VideoImageAnalysis implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键UUID
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 租户ID
     */
    @TableField("tenant_id")
    private String tenantId;

    /**
     * 使用的AI模型
     */
    @TableField("model")
    private String model;

    /**
     * 图像URL
     */
    @TableField("video_image_url")
    private String videoImageUrl;

    /**
     * 图像临时访问URL
     */
    @TableField("video_image_temp_url")
    private String videoImageTempUrl;

    /**
     * 用户问题文本
     */
    @TableField("user_question")
    private String userQuestion;

    /**
     * AI返回的内容
     */
    @TableField("response_content")
    private String responseContent;

    /**
     * 角色
     */
    @TableField("role")
    private String role;

    /**
     * 完成原因
     */
    @TableField("finish_reason")
    private String finishReason;

    /**
     * 选择索引
     */
    @TableField("choice_index")
    private Integer choiceIndex;

    /**
     * 提示词token数量
     */
    @TableField("usage_prompt_tokens")
    private Integer usagePromptTokens;

    /**
     * 完成token数量
     */
    @TableField("usage_completion_tokens")
    private Integer usageCompletionTokens;

    /**
     * 总token数量
     */
    @TableField("usage_total_tokens")
    private Integer usageTotalTokens;

    /**
     * 完整请求参数JSON
     */
    @TableField("request_data")
    private String requestData;

    /**
     * 完整响应数据JSON
     */
    @TableField("response_data")
    private String responseData;

    /**
     * 用户姓名
     */
    @TableField("user_name")
    private String userName;

    /**
     * 用户电话
     */
    @TableField("user_phone")
    private String userPhone;

    /**
     * 会话名称
     */
    @TableField("session_name")
    private String sessionName;

    /**
     * 状态：1-成功，0-失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 分析类型
     */
    @TableField("type")
    private String type;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;
}
