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;

/**
 * 检测视频模板日志实体
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("detect_video_template")
public class DetectVideoTemplate implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 请求ID
     */
    @TableField("request_id")
    private String requestId;

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

    /**
     * 模板视频的URL
     */
    @TableField("video_url")
    private String videoUrl;

    /**
     * 所属人姓名
     */
    @TableField("owner_name")
    private String ownerName;

    /**
     * 所属人电话
     */
    @TableField("owner_phone")
    private String ownerPhone;

    /**
     * 模板名称
     */
    @TableField("template_name")
    private String templateName;

    /**
     * 模版ID，生成视频时使用
     */
    @TableField("template_id")
    private String templateId;

    /**
     * 临时访问链接
     */
    @TableField("temp_url")
    private String tempUrl;

    /**
     * 临时链接过期时间
     */
    @TableField("temp_url_expires_at")
    private LocalDateTime tempUrlExpiresAt;

    /**
     * 任务状态
     */
    @TableField("task_status")
    private String taskStatus;

    /**
     * 任务id
     */
    @TableField("task_id")
    private String taskId;


    /**
     * 是否成功
     */
    @TableField("success")
    private Boolean success;

    /**
     * 请求时间
     */
    @TableField("request_time")
    private LocalDateTime requestTime;

    /**
     * 响应时间
     */
    @TableField("response_time")
    private LocalDateTime responseTime;

    /**
     * HTTP状态码
     */
    @TableField("status_code")
    private Integer statusCode;

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

    /**
     * 错误信息
     */
    @TableField("error_message")
    private String errorMessage;

    /**
     * 处理时间(毫秒)
     */
    @TableField("processing_time_ms")
    private Long processingTimeMs;

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

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