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

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

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

    @ApiModelProperty(value = "应用ID", example = "timesheet", required = true)
    @NotBlank(message = "应用ID不能为空")
    @Size(max = 30, message = "应用ID长度不能超过30个字符")
    private String appId;

    @ApiModelProperty(value = "代理人用户ID", example = "1", required = true)
    @NotNull(message = "代理人用户ID不能为空")
    private Long agentUserId;

    @ApiModelProperty(value = "代理人用户姓名", example = "Peter(131).Du", notes = "姓名内容组合")
    @Size(max = 255, message = "代理人用户姓名长度不能超过255个字符")
    private String agentUserName;

    @ApiModelProperty(value = "代理人GPN", example = "XE030018616", required = true)
    @Size(max = 16, message = "代理人GPN长度不能超过16个字符")
    @NotNull(message = "代理人GPN不能为空")
    private String agentGpn;

    @ApiModelProperty(value = "代理人email", example = "xxx@ey.com")
    @Size(max = 50, message = "email长度不能超过50个字符")
    private String agentEmail;

    @ApiModelProperty(value = "被代理人用户ID", example = "2", required = true)
    @NotNull(message = "被代理人用户ID不能为空")
    private Long userId;

    @ApiModelProperty(value = "被代理人用户姓名", example = "Peter(131).Du", notes = "姓名内容组合")
    @Size(max = 255, message = "被代理人用户姓名长度不能超过255个字符")
    private String userName;

    @ApiModelProperty(value = "被代理人GPN", example = "XE030018616", required = true)
    @Size(max = 16, message = "被代理人GPN长度不能超过16个字符")
    @NotNull(message = "被代理人GPN不能为空")
    private String gpn;

    @ApiModelProperty(value = "被代理人email", example = "xxx@ey.com")
    @Size(max = 50, message = "被代理人email长度不能超过50个字符")
    private String email;


}
