package incheon.com.security.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

/**
 * 사용자 역할 정보 VO
 * - 정규 역할과 임시 역할을 통합 관리
 */
@Schema(description = "사용자 역할 정보")
@Getter
@Setter
public class UserRoleVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 시스템 코드 */
    @Schema(description = "시스템 코드")
    private String sysCd;

    /** 역할 코드 */
    @Schema(description = "역할 코드")
    private String roleCd;

    /** 역할명 */
    @Schema(description = "역할명")
    private String roleNm;

    /** 역할 유형 코드 (ROLTYP001: 통합관리자, ROLTYP002: 업무관리자, ROLTYP003: 업무사용자) */
    @Schema(description = "역할 유형 코드 (ROLTYP001: 통합관리자, ROLTYP002: 업무관리자, ROLTYP003: 업무사용자)")
    private String roleTypeCd;

    /** 역할 유형 (REGULAR: 정규, TEMP: 임시) */
    @Schema(description = "역할 유형 (REGULAR: 정규, TEMP: 임시)")
    private String roleType;

    /** 시작일자 */
    @Schema(description = "역할 시작일자")
    private Date bgngYmd;

    /** 종료일자 */
    @Schema(description = "역할 종료일자")
    private Date endYmd;

    /** 임시권한 신청 사유 (임시 역할인 경우) */
    @Schema(description = "임시권한 신청 사유")
    private String aplcnRsn;
}
