package org.springblade.common.auth.support;

import com.wn.common.datamodel.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 应用信息
 * </p>
 *
 * @author wpp
 * @since 2019-09-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "应用信息", description = "应用信息")
public class Application extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 应用编码
     */
    @ApiModelProperty(name = "code", value = "应用编码")
    private String code;
    /**
     * 应用名称
     */
    @ApiModelProperty(name = "name", value = "应用名称")
    private String name;
    /**
     * 应用图标在OSS上的URL
     */
    @ApiModelProperty(name = "iconUrl", value = "应用图标在OSS上的URL")
    private String iconUrl;
    /**
     * 登录页面，不指定使用默认登录页，退出时也回登录页
     */
    @ApiModelProperty(name = "loginUrl", value = "登录页面，不指定使用默认登录页，退出时也回登录页")
    private String loginUrl;
    /**
     * 应用首页地址
     */
    @ApiModelProperty(name = "mainUrl", value = "应用首页地址")
    private String mainUrl;
    /**
     * 状态，0:无效，1:有效
     */
    @ApiModelProperty(name = "status", value = "状态，0:无效，1:有效")
    private Integer status;
    /**
     * 显示顺序
     */
    @ApiModelProperty(name = "sequenceNumber", value = "显示顺序")
    private Integer sequenceNumber;
    /**
     * 描述
     */
    @ApiModelProperty(name = "description", value = "描述")
    private String description;
    /**
     * 创建人
     */
    @ApiModelProperty(name = "creator", value = "创建人")
    private String creator;
    /**
     * 修改人
     */
    @ApiModelProperty(name = "modifier", value = "修改人")
    private String modifier;
    /**
     * 应用内的角色列表
     */
    @ApiModelProperty(name = "roles", value = "应用内的角色列表")
    private List<RoleV2> roles;
    /**
     * 应用内的菜单列表，只包含顶级菜单parentId=0
     */
    @ApiModelProperty(name = "menus", value = "应用内的菜单列表，只包含顶级菜单parentId=0")
    private List<MenuV2> menus;
    /**
     * 应用内的数据权限列表
     */
    @ApiModelProperty(name = "dataPermissions", value = "应用内的数据权限列表")
    private List<UserDataPermission> dataPermissions;
}
