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("face_detect_log")
public class FaceDetectLog implements Serializable {

    private static final long serialVersionUID = 1L;

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

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

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

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

    /**
     * 图片URL
     */
    @TableField("image_url")
    private String imageUrl;

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

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

    /**
     * 头像名称
     */
    @TableField("avatar_name")
    private String avatarName;

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

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

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

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

    /**
     * 检测到的图像数量
     */
    @TableField("face_count")
    private Integer faceCount;

    /**
     * 图像区域坐标 [x1, y1, x2, y2]
     */
    @TableField("face_bbox")
    private String faceBbox;

    /**
     * 动态区域坐标 [x1, y1, x2, y2]
     */
    @TableField("ext_bbox")
    private String extBbox;

    /**
     * 完整响应数据
     */
    @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;
}
