private Mono<ResponseStatusCode> isGroupMemberAllowedToSendMessage(
            @NotNull Long groupId,
            @NotNull Long senderId) {
        return groupService.isGroupMuted(groupId)
                .flatMap(isGroupMuted -> {
                    if (isGroupMuted) {
                        return Mono.just(ResponseStatusCode.SEND_MESSAGE_TO_MUTED_GROUP);
                    }
                    if (!checkIfTargetActiveAndNotDeleted) {
                        return Mono.just(ResponseStatusCode.OK);
                    }
                    return groupService.isGroupActiveAndNotDeleted(groupId)
                            .flatMap(isActive -> isActive
                                    ? isMemberMuted(groupId, senderId, true).map(muted -> muted
                                            ? ResponseStatusCode.MUTED_GROUP_MEMBER_SEND_MESSAGE
                                            : ResponseStatusCode.OK)
                                    : Mono.just(ResponseStatusCode.SEND_MESSAGE_TO_INACTIVE_GROUP));
                });
    }
@return Possible codes: {@link ResponseStatusCode#OK}
        {@link ResponseStatusCode#SEND_MESSAGE_TO_MUTED_GROUP}
        {@link ResponseStatusCode#SEND_MESSAGE_TO_INACTIVE_GROUP}
        {@link ResponseStatusCode#MUTED_GROUP_MEMBER_SEND_MESSAGE}
turms-service/src/main/java/im/turms/service/domain/group/service/GroupMemberService.java