package com.dbnt.kcscbackend.auth.entity;

import io.swagger.v3.oas.annotations.media.Schema;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * @Class Name : LoginVO.java
 * @Description : Login VO class
 * @Modification Information
 * @
 * @  수정일         수정자                   수정내용
 * @ -------    --------    ---------------------------
 * @ 2009.03.03    박지욱          최초 생성
 *
 *  @author 공통서비스 개발팀 박지욱
 *  @since 2009.03.03
 *  @version 1.0
 *  @see
 *  
 */
@Schema(description = "사용자 정보 VO")
@Getter
@Setter
public class LoginVO implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -8274004534207618049L;
	
	@Schema(description = "아이디")
	@Pattern(regexp = "^[a-zA-Z]{1}[a-zA-Z0-9_]{4,11}$")
	@NotBlank(message = "아이디를 입력해주세요.")
	private String id;
	
	@Email(message = "이메일 형식에 맞지 않습니다.")
	@Schema(description = "이메일주소")
	@NotBlank(message = "이메일을 입력해주세요.")
	private String email;

	@Pattern(regexp = "^(?=.*[a-z])(?=.*\\d)(?=.*[@$#!%*?&])[A-Za-z\\d@$#!%*?&]{8,}$",
			message = "비밀번호는 영문 대,소문자와 숫자, 특수기호가 적어도 1개 이상씩 포함된 8자 이상의 문자 조합이여야 합니다.")
	@Schema(description = "비밀번호")
	@NotBlank(message = "비밀번호를 입력해주세요.")
	private String password;

	@Schema(description = "비밀번호확인")
	@NotBlank(message = "비밀번호확인을 입력해주세요.")
	private String passwordChk;

	@Schema(description = "사용자 구분", allowableValues = {"ADM", "USR"}, defaultValue = "USR")
	private String userSe;

	@Schema(description = "이름")
	private String name;

	@Schema(description = "주민등록번호")
	private String ihidNum;

	@Schema(description = "비밀번호 힌트")
	private String passwordHint;
	
	@Schema(description = "비밀번호 정답")
	private String passwordCnsr;
	
	@Schema(description = "조직(부서)ID")
	private String orgnztId;
	
	@Schema(description = "조직(부서)명")
	private String orgnztNm;
	
	@Schema(description = "고유아이디")
	private String uniqId;
	
	@Schema(description = "로그인 후 이동할 페이지")
	private String url;
	
	@Schema(description = "사용자 IP정보")
	private String ip;
	
	@Schema(description = "GPKI인증 DN")
	private String dn;
	
	
}
