package com.zt.plat.module.qms.resource.clientManage.controller.vo;

import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.infra.api.businessfile.dto.BusinessFileWithUrlRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;
import com.zt.plat.framework.excel.core.convert.DictConvert;

@Schema(description = "管理后台 - 客户端版本管理 Response VO")
@Data
@ExcelIgnoreUnannotated
public class VersionManagementRespVO {

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

    @Schema(description = "客户端code", requiredMode = Schema.RequiredMode.REQUIRED, example = "20524")
    @ExcelProperty(value = "客户端code", converter = DictConvert.class)
    private String applicationCode;

    @Schema(description = "客户端名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
    @ExcelProperty(value = "客户端名称", converter = DictConvert.class)
    private String applicationName;

    @Schema(description = "更新标题")
    @ExcelProperty("更新标题")
    private String updateTitle;

    @Schema(description = "更新内容")
    @ExcelProperty("更新内容")
    private String updateContent;

    @Schema(description = "更新平台", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty(value = "更新平台", converter = DictConvert.class)
    private String updatePlatform;

    @Schema(description = "安装包类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty(value = "安装包类型", converter = DictConvert.class)
    private String updateType;

    @Schema(description = "当前版本，必须大于当前线上发行版本号")
    @ExcelProperty("当前版本，必须大于当前线上发行版本号")
    private String currentVersion;

    @Schema(description = "最低版本")
    @ExcelProperty("最低版本")
    private String minimumVersion;

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

    @Schema(description = "下载文件id", example = "11223344")
    @ExcelProperty("下载文件id")
    private String downloadId;

    @Schema(description = "文件md5值")
    @ExcelProperty("文件md5值")
    private String fileMd5;

    @Schema(description = "文件sha1值")
    @ExcelProperty("文件sha1值")
    private String fileEncryptAlgorithm;

    @Schema(description = "发布状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("发布状态")
    private String publishFlag;

    @Schema(description = "是否静默更新")
    @ExcelProperty("是否静默更新")
    private Integer silenceFlag;

    @Schema(description = "是否强制更新")
    @ExcelProperty("是否强制更新")
    private Integer mustFlag;

    @Schema(description = "所属部门")
    @ExcelProperty("所属部门")
    private String systemDepartmentCode;

    @Schema(description = "创建日期")
    @ExcelProperty("创建日期")
    private LocalDateTime createTime;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "创建者")
    @ExcelProperty("创建者")
    private String creator;

//    ===================附件上传code=========================
    @Schema(description = "附件上传code")
    @ExcelProperty("附件上传code")
    private String fileUploadBusinessCode = "qms_resource_version_manage";


//    ===================扩展字段=========================
    @Schema(description = "附件对象")
    private CommonResult<List<BusinessFileWithUrlRespDTO>> businessFileRet;



}