package cn.ey.biz.module.system.controller.admin.app.vo;

import cn.ey.biz.module.system.controller.admin.i18n.vo.I18nRespVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.util.List;

/**
 * 系统应用 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class AppBaseVO {

    @ApiModelProperty(value = "编码", required = true)
    @NotBlank(message = "编码不能为空")
    @Size(max = 16, message = "编码标签长度不能超过16个字符")
    private String code;

    @ApiModelProperty(value = "app 路径", required = true)
    @NotBlank(message = "app路径不能为空")
    @Size(max = 16, message = "app路径长度不能超过100个字符")
    private String appRoad;

    @ApiModelProperty(value = "名称")
    @Size(max = 30, message = "app名长度不能超过30个字符")
    private String name;

    @ApiModelProperty(value = "生产地址")
    @Size(max = 300, message = "生产地址长度不能超过300个字符")
    private String url;

    @ApiModelProperty(value = "开发地址")
    @Size(max = 300, message = "开发地址长度不能超过300个字符")
    private String urlDev;

    @ApiModelProperty(value = "状态（0正常 1停用）", required = true)
    @NotNull(message = "状态（0正常 1停用）不能为空")
    @Max(value = 1, message = "状态只能为0或1")
    @Min(value = 0, message = "状态只能为0或1")
    private Integer status;

    /**
     * 应用类型 type_code:1：web应用:2:桌面应用、3:移动应用,4微前端
     */
    private String appType;

    @ApiModelProperty(value = "备注")
    @Size(max = 300, message = "备注长度不能超过300个字符")
    private String remark;

    @ApiModelProperty(value = "多语言列表", required = true)
    @Size(max = 20, message = "多语言列表长度不能超过20个")
    private List<I18nRespVO> langs;

}
