@java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        getSerializedSize();
        if (!getIdsList().isEmpty()) {
            output.writeUInt32NoTag(10);
            output.writeUInt32NoTag(idsMemoizedSerializedSize);
        }
        for (int i = 0; i < ids_.size(); i++) {
            output.writeInt64NoTag(ids_.getLong(i));
        }
        if (((bitField0_ & 0x00000001) != 0)) {
            output.writeBool(2, areGroupMessages_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
            output.writeBool(3, areSystemMessages_);
        }
        if (!getFromIdsList().isEmpty()) {
            output.writeUInt32NoTag(34);
            output.writeUInt32NoTag(fromIdsMemoizedSerializedSize);
        }
        for (int i = 0; i < fromIds_.size(); i++) {
            output.writeInt64NoTag(fromIds_.getLong(i));
        }
        if (((bitField0_ & 0x00000004) != 0)) {
            output.writeInt64(5, deliveryDateStart_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
            output.writeInt64(6, deliveryDateEnd_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
            output.writeInt32(7, maxCount_);
        }
        if (withTotal_) {
            output.writeBool(8, true);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
            output.writeBool(9, descending_);
        }
        for (im.turms.server.common.access.client.dto.model.common.Value value : customAttributes_) {
            output.writeMessage(15, value);
        }
        getUnknownFields().writeTo(output);
    }
<code>repeated .im.turms.proto.Value custom_attributes = 15;</code>
turms-server-common/src/main/java/im/turms/server/common/access/client/dto/request/message/QueryMessagesRequest.java