package com.ai.da.mapper.primary.entity;


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

import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_generate")
public class Generate {

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

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

    /**
     * 唯一id
     */
    private String uniqueId;

    /**
     * Sketchboard  Printboard  Moodboard
     */
    private String level1Type;

    /**
     * Slogan Logo Pattern
     */
    private String level2Type;

    /**
     * 图片来源 collection | library
     */
    private String elementSource;

    /**
     * 关联collection element id
     */
    private Long elementId;

    /**
     * caption的内容
     */
    private String text;

    /**
     * 选择生成类型：text、image、text-image
     */
    private String generateType;

    /**
     * 模型名
     */
    private String modelName;

    /**
     * Logo 种子 相同种子 相同prompt 输出一定相同
     */
    private String seed;

    /**
     * 1 -> 粗
     * 2 -> 中
     * 3 -> 细
     * custom -> 自定义
     */
    private String sketchStyle;

    /**
     * sketch 风格参考图的collection_element_id
     */
    private Long styleImageElementId;

    /**
     * 由拼贴图生成线稿的项目id
     */
    private Long projectId;
    /**
     * 输入模型的拼贴图
     */
    private String inputImageUrl;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 更新时间
     */
    private Date updateDate;

    public Generate() {
    }

    public Generate(Long accountId, String uniqueId, String level1Type, String level2Type, String text, String generateType, String modelName, Date createDate) {
        this.accountId = accountId;
        this.uniqueId = uniqueId;
        this.level1Type = level1Type;
        this.level2Type = level2Type;
        this.text = text;
        this.generateType = generateType;
        this.modelName = modelName;
        this.createDate = createDate;
    }
}
