package com.sptg.permissions.api.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.sptg.common.core.entity.BaseEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * title: AppPackage
 * description: app安装包
 *
 *
 *
 */
@Setter
@Getter
@NoArgsConstructor
@TableName(value = "app_package")
public class AppPackage extends BaseEntity implements java.io.Serializable {

    /**
     * 安装包类型：{ 1：安卓,2：IOS }
     */
    @TableField(value = "i_package_type")
    private Integer packageType;

    /**
     * 设备类型：{ 1：手机,2：门禁,3管理机 }
     */
    @TableField(value = "i_device_type")
    private Integer deviceType;

    /**
     * 包名
     */
    @TableField(value = "s_package_name")
    private String packageName;

    /**
     * 更新描述
     */
    @TableField(value = "s_description")
    private String description;

    /**
     * 版本号
     */
    @TableField(value = "l_version")
    private String version;

    /**
     * 设备厂商
     */
    @TableField(value = "s_device_factory")
    private String deviceFactory;

    /**
     * 设备型号
     */
    @TableField(value = "s_device_model_number")
    private String deviceModelNumber;

    /**
     * 下载地址
     */
    @TableField(value = "s_download_url")
    private String downloadUrl;

    /**
     * 安卓包Md5码
     */
    @TableField(value = "s_package_md5")
    private String packageMd5;


    /**
     * 发布人Id
     */
    @TableField(value = "l_create_account_id")
    private Long createAccountId;

    /**
     * 下载次数
     */
    @TableField(value = "l_download_count")
    private Long downloadCount;

    /**
     * 是否是否强制更新：{ 1：是，2：不是 }
     */
    @TableField(value = "i_is_force_update")
    private Integer isForceUpdate;

    /**
     * 是否启用：{ 1：启用，2：禁用 }
     */
    @TableField(value = "i_is_enable")
    private Integer isEnable;

    /**
     * 所属机构存储位置
     */
    @TableField(value = "s_org_position")
    private String orgPosition;

    /**
     * 平台标识，android,ios
     */
    @TableField(value = "s_platform")
    private String platform;

    /**
     * 升级包用途
     * 0-正常包
     * 1-恢复包
     */
    @TableField(value = "i_restore")
    private Integer restore;


    /* -------------------------------------------------------------------------------------------------------------- */

    /**
     * 更新方式
     * 1：指定安装包，更新所有相匹配的设备
     * 2：指定设备更新到最新版本
     * 3: 指定设备更新到指定版本
     */
    @TableField(exist = false)
    private Integer updateMethod;

    /**
     * 设备Id列表
     */
    @TableField(exist = false)
    private Long[] deviceIds;

    //用在设备升级
    @TableField(exist = false)
    private String deviceId;

}
