package com.zhyc.module.app.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;

/**
 * 应用版本信息对象 app_version
 * 
 * @author ruoyi
 * @date 2025-12-09
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppVersion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 平台类型 */
    @Excel(name = "平台类型")
    private String platform;

    /** 版本代码（用于比较的数字，如1000） */
    @Excel(name = "版本代码", readConverterExp = "用=于比较的数字，如1000")
    private Long versionCode;

    /** 版本名称（如1.0.0） */
    @Excel(name = "版本名称", readConverterExp = "如=1.0.0")
    private String versionName;

    /** 是否强制更新（0否，1是） */
    @Excel(name = "是否强制更新", readConverterExp = "0=否，1是")
    private Integer isForceUpdate;

    /** 是否最新版本 */
    @Excel(name = "是否最新版本")
    private Integer isLatest;

    /** 最小兼容版本 */
    @Excel(name = "最小兼容版本")
    private Long minVersionCode;

    /** 下载地址 */
    @Excel(name = "下载地址")
    private String downloadUrl;

    /** 更新标题 */
    @Excel(name = "更新标题")
    private String updateTitle;

    /** 更新内容 */
    @Excel(name = "更新内容")
    private String updateContent;

    /** 文件大小（字节） */
    @Excel(name = "文件大小", readConverterExp = "字=节")
    private Long fileSize;

    /** 文件MD5 */
    @Excel(name = "文件MD5")
    private String md5Hash;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishTime;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private Integer isDeleted;

}
