package com.sonic.cow.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 生成图片任务子项表
 * @author code
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "gen_image_task_record", autoResultMap = true)
public class GenImageTaskRecord {

    /**
    * 主键ID
    */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
    * 任务ID gen_image_task表主键id
    */
    private Long taskId;

    /**
    * 批次号
    */
    private String batchNo;

    /**
     * 生图类型 文生图：1  图生图：2
     */
    private Integer type;

    /**
    * 用户ID
    */
    private Long userId;

    /**
     * 生成图片的第三方任务id
     */
    private String thirdTaskId;

    /**
     * 图生图-生成图片异步任务id，用此查询生图结果
     */
    private String asyncTaskId;

    /**
     * 生成图片的SD提示词
     */
    private String prompt;

    /**
    * 图片链接
    */
    private String imageUrl;

    /**
     * 图片连接的MD5值
     */
    private String imageUrlMd5;

    /**
     * 图片生成状态
     */
    private Status status;

    /**
     * 图片生成失败原因
     */
    private String failReason;

    /**
     * 是否已生成完成（0 否、1 是）
     */
    private Boolean completed;

    /**
    * 创建时间
    */
    private LocalDateTime createTime;

    /**
    * 编辑时间
    */
    private LocalDateTime editTime;

    /**
     * 图片生成结果状态
     */
    public enum Status {
        /**
         * 生成中
         * 被鉴黄（终态）
         * 生成完成（终态）
         * 失败 模型接口报错时
         */
        PENDING,
        NSFW,
        COMPLETED,
        FAILED,

        ;
    }



}