package com.hotent.portal.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hotent.base.entity.BaseModel;
import com.hotent.base.jaxb.LocalDateTimeAdapter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.time.LocalDateTime;

@XmlRootElement(name = "appDingModel")
@XmlAccessorType(XmlAccessType.FIELD)
@TableName("PORTAL_APP_DING")
@ApiModel(value = "AppDingModel",description = "移动端应用发布为钉钉微应用")
public class AppDingModel extends BaseModel<AppDingModel> {
    private static final long serialVersionUID = 1L;
    @XmlTransient
    @TableId("ID_")
    @ApiModelProperty(value="主键")
    protected String id;

    @XmlAttribute(name = "appId")
    @TableField("APP_ID_")
    @ApiModelProperty(value="系统内应用id")
    protected String appId;

    @XmlAttribute(name = "userId")
    @TableField("USER_ID_")
    @ApiModelProperty(value="应用授权userId集合")
    protected String userId;

    @XmlAttribute(name = "dingUserId")
    @TableField("DING_USER_ID_")
    @ApiModelProperty(value="钉钉应用授权userId集合")
    protected String dingUserId;


    @XmlAttribute(name = "dingAppName")
    @TableField("DING_APP_NAME_")
    @ApiModelProperty(value="钉钉应用名称")
    protected String dingAppName;

    @XmlAttribute(name = "dingAppUrl")
    @TableField("DING_APP_Url_")
    @ApiModelProperty(value="钉钉应用url")
    protected String dingAppUrl;

    @XmlAttribute(name = "dingAppDesc")
    @TableField("DING_APP_DESC_")
    @ApiModelProperty(value="钉钉应用描述")
    protected String dingAppDesc;

    @XmlAttribute(name = "dingAppIcon")
    @TableField("DING_APP_ICON_")
    @ApiModelProperty(value="钉钉应用图标")
    protected String dingAppIcon;

    @XmlAttribute(name = "dingAppAgentId")
    @TableField("DING_APP_AGENT_ID_")
    @ApiModelProperty(value="钉钉应用agentid")
    protected String dingAppAgentId;

    @XmlAttribute(name = "dingAppKey")
    @TableField("DING_APP_KEY_")
    @ApiModelProperty(value="钉钉应用appkey")
    protected String dingAppKey;

    @XmlAttribute(name = "dingAppSecret")
    @TableField("DING_APP_SECRET_")
    @ApiModelProperty(value="钉钉应用密钥")
    protected String dingAppSecret;

    @XmlAttribute(name = "dingOpUnionId")
    @TableField("DING_OP_UNION_ID_")
    @ApiModelProperty(value="钉钉应用操作人unionid")
    protected String dingOpUnionId;

    @XmlAttribute(name = "tenantId")
    @TableField("TENANT_ID_")
    @ApiModelProperty(value="租户id")
    protected String tenantId;

    @XmlAttribute(name = "orgId")
    @TableField("ORG_ID_")
    @ApiModelProperty(value="组织id")
    protected String orgId;

    @XmlAttribute(name = "createBy")
    @TableField("CREATE_BY_")
    @ApiModelProperty(value="创建人")
    protected String createBy;

    @XmlAttribute(name = "createTime")
    @XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
    @TableField("CREATE_TIME_")
    @ApiModelProperty(value="创建时间")
    protected LocalDateTime createTime;

    @XmlAttribute(name = "updateBy")
    @TableField("UPDATE_BY_")
    @ApiModelProperty(value="更新人")
    protected String updateBy;

    @XmlAttribute(name = "updateTime")
    @XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
    @TableField("UPDATE_TIME_")
    @ApiModelProperty(value="更新时间")
    protected LocalDateTime updateTime;

    @XmlAttribute(name = "deleteFlag")
    @TableField(exist = false)
    @ApiModelProperty(value="删除标记（0，不删除1 删除）")
    protected String deleteFlag;

    public String getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(String deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public String getDingAppUrl() {
        return dingAppUrl;
    }

    public void setDingAppUrl(String dingAppUrl) {
        this.dingAppUrl = dingAppUrl;
    }

    public String getDingUserId() {
        return dingUserId;
    }

    public void setDingUserId(String dingUserId) {
        this.dingUserId = dingUserId;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getDingAppName() {
        return dingAppName;
    }

    public void setDingAppName(String dingAppName) {
        this.dingAppName = dingAppName;
    }

    public String getDingAppDesc() {
        return dingAppDesc;
    }

    public void setDingAppDesc(String dingAppDesc) {
        this.dingAppDesc = dingAppDesc;
    }

    public String getDingAppIcon() {
        return dingAppIcon;
    }

    public void setDingAppIcon(String dingAppIcon) {
        this.dingAppIcon = dingAppIcon;
    }

    public String getDingAppAgentId() {
        return dingAppAgentId;
    }

    public void setDingAppAgentId(String dingAppAgentId) {
        this.dingAppAgentId = dingAppAgentId;
    }

    public String getDingAppKey() {
        return dingAppKey;
    }

    public void setDingAppKey(String dingAppKey) {
        this.dingAppKey = dingAppKey;
    }

    public String getDingAppSecret() {
        return dingAppSecret;
    }

    public void setDingAppSecret(String dingAppSecret) {
        this.dingAppSecret = dingAppSecret;
    }

    public String getDingOpUnionId() {
        return dingOpUnionId;
    }

    public void setDingOpUnionId(String dingOpUnionId) {
        this.dingOpUnionId = dingOpUnionId;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
}
