protected function determineCategoryRelationName()
    {
        // pick a name and see if it conflicts with anything
        $tryNames = config('pxlcms.generator.standard_models.category_relation_names', []);

        $this->categoryRelationName = null;

        foreach ($tryNames as $tryName) {

            $tryName = trim($tryName);

            if ( ! $this->doesRelationNameConflict($tryName)) {

                $this->categoryRelationName = $tryName;
                break;
            }
        }

        if (empty($this->categoryRelationName)) {
            $this->context->log(
                "Unable to find a non-conflicting category relation name for model #{$this->data->module}. "
                . "Relation omitted.",
                Generator::LOG_LEVEL_ERROR
            );
        }

        return $this->categoryRelationName;
    }