package com.yolo.keyboard.controller.admin.themes.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 键盘皮肤 Response VO")
@Data
@ExcelIgnoreUnannotated
public class KeyboardThemesRespVO {

    @Schema(description = "主键 Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19865")
    @ExcelProperty("主键 Id")
    private Long id;

    @Schema(description = "键盘皮肤名称", example = "李四")
    @ExcelProperty("键盘皮肤名称")
    private String themeName;

    @Schema(description = "键盘价格", example = "29564")
    @ExcelProperty("键盘价格")
    private BigDecimal themePrice;

    @Schema(description = "主题标签")
    @ExcelProperty("主题标签")
    private Object themeTag;

    @Schema(description = "主题下载次数")
    @ExcelProperty("主题下载次数")
    private String themeDownload;

    @Schema(description = "主题风格")
    @ExcelProperty("主题风格")
    private Long themeStyle;

    @Schema(description = "主题上架状态", example = "2")
    @ExcelProperty("主题上架状态")
    private Boolean themeStatus;

    @Schema(description = "主题购买次数")
    @ExcelProperty("主题购买次数")
    private Long themePurchasesNumber;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    @ExcelProperty("更新时间")
    private LocalDateTime updatedAt;

    @Schema(description = "预览图", example = "https://www.iocoder.cn")
    @ExcelProperty("预览图")
    private String themePreviewImageUrl;

    @Schema(description = "是否免费")
    @ExcelProperty("是否免费")
    private Boolean isFree;

    @Schema(description = "下载地址", example = "https://www.iocoder.cn")
    @ExcelProperty("下载地址")
    private String themeDownloadUrl;

    @Schema(description = "排序")
    @ExcelProperty("排序")
    private Integer sort;

    @Schema(description = "真实下载数量", example = "3353")
    @ExcelProperty("真实下载数量")
    private Long realDownloadCount;

}