package com.dora.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 工作流列表项DTO
 */
@Data
@Schema(description = "工作流列表项信息")
public class WorkflowListItemDto {
    
    /**
     * 工作流ID
     */
    @Schema(description = "工作流ID", example = "1")
    private Long id;
    
    /**
     * 工作流名称
     */
    @Schema(description = "工作流名称", example = "智能图像生成工作流")
    private String name;
    
    /**
     * 工作流描述
     */
    @Schema(description = "工作流描述", example = "基于AI的智能图像生成工作流，支持多种图像风格转换")
    private String description;
    
    /**
     * 封面图片URL
     */
    @Schema(description = "封面图片URL", example = "https://example.com/cover1.jpg")
    private String coverUrl;
    
    /**
     * 价格
     */
    @Schema(description = "价格", example = "29.99")
    private BigDecimal price;
    
    /**
     * 分类
     */
    @Schema(description = "分类", example = "人工智能")
    private String category;
    
    /**
     * 点赞数
     */
    @Schema(description = "点赞数", example = "1250")
    private Integer likeCount;
    
    /**
     * 评分
     */
    @Schema(description = "评分(1-5)", example = "5")
    private Integer rating;
    
    /**
     * 是否免费
     */
    @Schema(description = "是否免费", example = "false")
    private Boolean isFree;
    
    /**
     * 查看完整数据所需最低角色
     */
    @Schema(description = "查看完整数据所需最低角色（0游客/1普通/2VIP/3SVIP）", example = "2")
    private Integer fullAccessRole;
    
    /**
     * 复制所需最低角色
     */
    @Schema(description = "复制所需最低角色（0游客/1普通/2VIP/3SVIP）", example = "2")
    private Integer copyAccessRole;
    
    /**
     * 查看完整数据所需角色名称
     */
    @Schema(description = "查看完整数据所需角色名称", example = "VIP")
    private String fullAccessRoleName;
    
    /**
     * 复制所需角色名称
     */
    @Schema(description = "复制所需角色名称", example = "VIP")
    private String copyAccessRoleName;
    
    /**
     * 创建时间
     */
    @Schema(description = "创建时间", example = "2024-01-15T10:30:00")
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @Schema(description = "更新时间", example = "2024-01-15T10:30:00")
    private LocalDateTime updateTime;
    
    /**
     * 创建者信息
     */
    @Schema(description = "创建者信息")
    private CreatorDto creator;
    
    /**
     * 创建者DTO
     */
    @Data
    @Schema(description = "创建者信息")
    public static class CreatorDto {
        /**
         * 创建者ID
         */
        @Schema(description = "创建者ID", example = "17543607206742139")
        private String id;
        
        /**
         * 创建者用户名
         */
        @Schema(description = "创建者用户名", example = "张三")
        private String username;
        
        /**
         * 创建者头像URL
         */
        @Schema(description = "创建者头像URL", example = "https://example.com/avatar1.jpg")
        private String avatarUrl;
    }
} 