package pwc.taxtech.atms.dto.user;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * @see PwC.Tax.Tech.Atms.Application.Dto\TaxAdminDto\UserDimensionValueRoleDto.cs
 */
public class UserDimensionValueRoleDto {
    @JsonProperty("ID")
    private String id;
    @JsonProperty("userDimensionValueID")
    private String userDimensionValueId;
    @JsonProperty("roleID")
    private String roleId;
    private String roleName;
    @JsonProperty("userID")
    private String userId;
    @JsonProperty("dimensionID")
    private String dimensionId;
    @JsonProperty("dimensionValueID")
    private String dimensionValueId;
    private Short isAccessible;
    private Short hasOriginalRole;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUserDimensionValueId() {
        return userDimensionValueId;
    }

    public void setUserDimensionValueId(String userDimensionValueId) {
        this.userDimensionValueId = userDimensionValueId;
    }

    public String getRoleId() {
        return roleId;
    }

    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getDimensionId() {
        return dimensionId;
    }

    public void setDimensionId(String dimensionId) {
        this.dimensionId = dimensionId;
    }

    public String getDimensionValueId() {
        return dimensionValueId;
    }

    public void setDimensionValueId(String dimensionValueId) {
        this.dimensionValueId = dimensionValueId;
    }

    public Short getIsAccessible() {
        return isAccessible;
    }

    public void setIsAccessible(Short isAccessible) {
        this.isAccessible = isAccessible;
    }

    public Short getHasOriginalRole() {
        return hasOriginalRole;
    }

    public void setHasOriginalRole(Short hasOriginalRole) {
        this.hasOriginalRole = hasOriginalRole;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((id == null) ? 0 : id.hashCode());
        result = prime * result + ((dimensionId == null) ? 0 : dimensionId.hashCode());
        result = prime * result + ((dimensionValueId == null) ? 0 : dimensionValueId.hashCode());
        result = prime * result + ((hasOriginalRole == null) ? 0 : hasOriginalRole.hashCode());
        result = prime * result + ((isAccessible == null) ? 0 : isAccessible.hashCode());
        result = prime * result + ((roleId == null) ? 0 : roleId.hashCode());
        result = prime * result + ((roleName == null) ? 0 : roleName.hashCode());
        result = prime * result + ((userDimensionValueId == null) ? 0 : userDimensionValueId.hashCode());
        result = prime * result + ((userId == null) ? 0 : userId.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        UserDimensionValueRoleDto other = (UserDimensionValueRoleDto) obj;
        if (id == null) {
            if (other.id != null)
                return false;
        } else if (!id.equals(other.id))
            return false;
        if (dimensionId == null) {
            if (other.dimensionId != null)
                return false;
        } else if (!dimensionId.equals(other.dimensionId))
            return false;
        if (dimensionValueId == null) {
            if (other.dimensionValueId != null)
                return false;
        } else if (!dimensionValueId.equals(other.dimensionValueId))
            return false;
        if (hasOriginalRole == null) {
            if (other.hasOriginalRole != null)
                return false;
        } else if (!hasOriginalRole.equals(other.hasOriginalRole))
            return false;
        if (isAccessible == null) {
            if (other.isAccessible != null)
                return false;
        } else if (!isAccessible.equals(other.isAccessible))
            return false;
        if (roleId == null) {
            if (other.roleId != null)
                return false;
        } else if (!roleId.equals(other.roleId))
            return false;
        if (roleName == null) {
            if (other.roleName != null)
                return false;
        } else if (!roleName.equals(other.roleName))
            return false;
        if (userDimensionValueId == null) {
            if (other.userDimensionValueId != null)
                return false;
        } else if (!userDimensionValueId.equals(other.userDimensionValueId))
            return false;
        if (userId == null) {
            if (other.userId != null)
                return false;
        } else if (!userId.equals(other.userId))
            return false;
        return true;
    }

}