@java.lang.Override
    public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof GroupJoinRequest other)) {
            return super.equals(obj);
        }

        if (hasId() != other.hasId()) {
            return false;
        }
        if (hasId()) {
            if (getId() != other.getId()) {
                return false;
            }
        }
        if (hasCreationDate() != other.hasCreationDate()) {
            return false;
        }
        if (hasCreationDate()) {
            if (getCreationDate() != other.getCreationDate()) {
                return false;
            }
        }
        if (hasContent() != other.hasContent()) {
            return false;
        }
        if (hasContent()) {
            if (!getContent().equals(other.getContent())) {
                return false;
            }
        }
        if (hasStatus() != other.hasStatus()) {
            return false;
        }
        if (hasStatus()) {
            if (status_ != other.status_) {
                return false;
            }
        }
        if (hasExpirationDate() != other.hasExpirationDate()) {
            return false;
        }
        if (hasExpirationDate()) {
            if (getExpirationDate() != other.getExpirationDate()) {
                return false;
            }
        }
        if (hasGroupId() != other.hasGroupId()) {
            return false;
        }
        if (hasGroupId()) {
            if (getGroupId() != other.getGroupId()) {
                return false;
            }
        }
        if (hasRequesterId() != other.hasRequesterId()) {
            return false;
        }
        if (hasRequesterId()) {
            if (getRequesterId() != other.getRequesterId()) {
                return false;
            }
        }
        if (hasResponderId() != other.hasResponderId()) {
            return false;
        }
        if (hasResponderId()) {
            if (getResponderId() != other.getResponderId()) {
                return false;
            }
        }
        return getCustomAttributesList().equals(other.getCustomAttributesList())
                && getUnknownFields().equals(other.getUnknownFields());
    }
<code>repeated .im.turms.proto.Value custom_attributes = 15;</code>
turms-server-common/src/main/java/im/turms/server/common/access/client/dto/model/group/GroupJoinRequest.java