package com.dora.entity;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 工作流实体类
 */
@Data
public class Workflow {
    
    /**
     * 主键ID
     */
    private Long id;
    
    /**
     * 工作流名称
     */
    private String name;
    
    /**
     * 工作流的详细描述
     */
    private String description;
    
    /**
     * 创建者ID
     */
    private Long ownerId;
    
    /**
     * 封面图片URL
     */
    private String coverUrl;
    
    /**
     * 详情图集（JSON格式存储多张图片URL）
     */
    private String detailGallery;
    
    /**
     * 关联预览视频ID（阿里云VOD视频ID）
     */
    private String vodVideoId;
    
    /**
     * 存储工作流核心逻辑的JSON字符串
     */
    private String data;
    
    /**
     * 工作流依赖文件地址（当以文件方式上传时的文件URL，例如OSS地址）
     */
    private String dataFileUrl;
    
    /**
     * 点赞数量
     */
    private Integer likeCount;
    
    /**
     * 是否公开
     */
    private Integer isPublic;
    
    /**
     * 查看完整data所需最低角色
     */
    private Integer fullAccessRole;
    
    /**
     * 复制所需最低角色
     */
    private Integer copyAccessRole;
    
    /**
     * 价格
     */
    private BigDecimal price;
    
    /**
     * 审核状态(0待审核/1通过/2拒绝)
     */
    private Integer auditStatus;
    
    /**
     * 工作流分类
     */
    private String category;
    
    /**
     * 关联类目ID
     */
    private Long categoryId;
    
    /**
     * 评分(1-5)
     */
    private Integer rating;
    
    /**
     * 拒绝原因
     */
    private String rejectReason;
    
    /**
     * 审核时间
     */
    private LocalDateTime reviewTime;
    
    /**
     * 是否免费(0收费/1免费)
     */
    private Integer isFree;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 逻辑删除标识
     */
    private Integer isDeleted;
    
    /**
     * 获取视频ID（兼容前端字段名，与vodVideoId同步）
     */
    @JsonProperty("videoId")
    public String getVideoId() {
        return this.vodVideoId;
    }
    
    /**
     * 设置视频ID（兼容前端字段名，与vodVideoId同步）
     */
    @JsonProperty("videoId")
    public void setVideoId(String videoId) {
        this.vodVideoId = videoId;
    }
} 