package com.lesingle.creation.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lesingle.creation.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * AI 3D 任务表实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_biz_ai3d_task")
public class AI3DTask extends BaseEntity {

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

    /**
     * 用户 ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 输入类型：text/image
     */
    @TableField("input_type")
    private String inputType;

    /**
     * 输入内容：文字描述或图片 URL
     */
    @TableField("input_content")
    private String inputContent;

    /**
     * 生成类型：Normal/Geometry/LowPoly/Sketch
     */
    @TableField("generate_type")
    private String generateType;

    /**
     * 任务状态：pending/processing/completed/failed/timeout
     */
    @TableField("status")
    private String status;

    /**
     * 生成的 3D 模型 URL（单结果）
     */
    @TableField("result_url")
    private String resultUrl;

    /**
     * 预览图 URL（单结果）
     */
    @TableField("preview_url")
    private String previewUrl;

    /**
     * 生成的 3D 模型 URL 数组（多结果，JSON 格式）
     */
    @TableField("result_urls")
    private String resultUrls;

    /**
     * 预览图 URL 数组（多结果，JSON 格式）
     */
    @TableField("preview_urls")
    private String previewUrls;

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

    /**
     * 外部 AI 服务任务 ID
     */
    @TableField("external_task_id")
    private String externalTaskId;

    /**
     * 已重试次数
     */
    @TableField("retry_count")
    private Integer retryCount;

    /**
     * 完成时间
     */
    @TableField("complete_time")
    private java.time.LocalDateTime completeTime;
}
