package incheon.ags.ias.role.vo;

import incheon.com.cmm.ComDefaultVO;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.time.LocalDateTime;
import java.util.Objects;

@Getter
@Setter
public class RoleVO extends ComDefaultVO {
    private String roleCd;
    private String roleNm;
    private String roleExpln;
    private String roleTypeCd;
    private String upRoleCd;
    private Integer roleSortSeq;
    private String sysCd;  // PK: (ROLE_CD, SYS_CD) 복합키
    private String useYn;
    private String rulNm;  // 규칙명 (IP접근제어, 콤마구분)

    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    // 복합키 (ROLE_CD, SYS_CD) equals/hashCode
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        RoleVO roleVO = (RoleVO) o;
        return Objects.equals(roleCd, roleVO.roleCd) &&
               Objects.equals(sysCd, roleVO.sysCd);
    }

    @Override
    public int hashCode() {
        return Objects.hash(roleCd, sysCd);
    }
}