package com.eactive.eai.rms.common.acl.user.ui;

import java.time.LocalDateTime;

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

import org.springframework.format.annotation.DateTimeFormat;

import com.eactive.eai.data.converter.LocalDateTimeFormatters;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

@Data
public class UserUI {

	@JsonProperty("USERID")
	@NotNull
	@Size(min = 1, max = 20)
	private String userId;

	@JsonProperty("USERNAME")
	private String userName;

	@JsonProperty("JOBCLCD")
	private String jobclcd;

	@JsonProperty("ROLEIDNFINAME")
	private String roleidnfiname;

	@JsonProperty("DVSNNAME")
	private String dvsnname; // 부서명

	@JsonProperty("TEAMNAME")
	private String teamName; // 팀명

	@JsonProperty("JOBTLNAME")
	private String jobtlname; // 직위명

	@JsonProperty("PAFIARINFOBRNCD")
	private String pafiarinfobrncd; // 부점코드

	@JsonProperty("INTNLOUTSRCDSTICNAME")
	private String intnloutsrcdsticname; // 내부외주구분명

	@JsonProperty("CPHNNO")
	private String cphnno; // 휴대폰번호

	@JsonProperty("OFCTELNO")
	private String ofctelno; // 전화번호

	@JsonProperty("EMAD")
	private String emad; // 이메일주소

	@JsonProperty("EAIGROUPCODSTCD")
	private String eaigroupcodstcd; // EAI그룹회사코드

	@JsonProperty("SPOTPRXYEMPID")
	private String spotprxyempid; // 현장대리인ID

	@JsonProperty("SPOTPRXYNAME")
	private String spotprxyname; // 현장 대리인명

	@JsonProperty("LASTAMNDYMS")
	@JsonFormat(pattern = LocalDateTimeFormatters.FORMAT_YYYYMMDDHHMMSS_14)
	@DateTimeFormat(pattern = "yyyyMMddHHmmss")
	private LocalDateTime LASTAMNDYMS; // 수정일시

	@JsonProperty("SECONDMENTBRNCD")
	private String SECONDMENTBRNCD; // 파견부점코드

	@JsonProperty("SECONDMENTSTDT")
	private String SECONDMENTSTDT; // 파견시작일

	@JsonProperty("SECONDMENTENDT")
	private String SECONDMENTENDT; // 파견종료일
	
	@JsonProperty("ALLOWIP")
	private String allowIp; // 접속허용IP
	
	@JsonProperty("STATUS")
	private String status; // 사용자계정상태
}
