package com.mcwl.resource.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 下载记录表
 *
 * @author DaiZibo
 * @date 2025/3/6
 * @apiNote
 */

@TableName("download_record")
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DownloadRecord {

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /**
     * 下载作品ID
     */
    @ApiModelProperty(value = "下载作品ID")
    private Long productId;

    /**
     * 下载人ID
     */
    @ApiModelProperty(value = "下载人ID")
    private Long userId;

    /**
     * 作品类型（0模型 1工作流）
     */
    @ApiModelProperty(value = "作品类型（0模型 1工作流）")
    private Long productType;

    /**
     * 文件名字
     */
    @ApiModelProperty(value = "文件名字")
    private String fileName;

    /**
     * 封面图
     */
    @ApiModelProperty(value = "封面图")
    private String cover;

    /**
     * 作者名字
     */
    @ApiModelProperty(value = "作者名字")
    private String authorName;

    /**
     * 网站地址
     */
    @ApiModelProperty(value = "网站地址")
    private String website;

    /**
     * 文件大小
     */
    @ApiModelProperty(value = "文件大小")
    private String fileSize;

    /**
     * 状态(下载中，已暂停，下载完成)
     */
    @ApiModelProperty(value = "状态(下载中，已暂停，下载完成)")
    private Long status;

    /**
     * 创建日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;

    @ApiModelProperty(value = "模型名称")
    private String productName;

    @ApiModelProperty(value = "基础低模")
    private String modelVersionType;


    @ApiModelProperty(value = "下载类型（0模型 1工作流）")
    private Integer downloadType;

    @ApiModelProperty(value = "触发词")
    private String triggerWords;

}
