private List generatePathPatterns()

in doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/generator/impl/SokratesGenerator.java [533:582]


    private List<String> generatePathPatterns(Component comp, ArchitectureModel model) {
        List<String> patterns = new ArrayList<>();

        String baseName = comp.name()
            .toLowerCase()
            .replaceAll("[^a-z0-9]", "")
            .replaceAll(SUFFIX_SERVICE + "$", "")
            .replaceAll(SUFFIX_APPLICATION + "$", "")
            .replaceAll(SUFFIX_API + "$", "");

        // Add patterns based on component type
        switch (comp.type()) {
            case SERVICE, MODULE -> {
                patterns.add("**/" + baseName + "/**");
                patterns.add(PATTERN_SRC_MAIN_JAVA + "/" + baseName + "/**");
                patterns.add(PATTERN_SRC + "/" + baseName + "/**");
            }
            case LIBRARY -> {
                patterns.add("**/" + baseName + "/**");
                patterns.add(PATTERN_LIB + "/" + baseName + "/**");
            }
            case DATABASE -> {
                patterns.add(PATTERN_MIGRATIONS);
                patterns.add(PATTERN_SCHEMA);
                patterns.add(PATTERN_DB);
            }
            case API_GATEWAY -> {
                patterns.add(PATTERN_GATEWAY);
                patterns.add(PATTERN_API);
            }
            case MESSAGE_BROKER -> {
                patterns.add(PATTERN_MESSAGING);
                patterns.add(PATTERN_EVENTS);
            }
            default -> patterns.add("**/" + baseName + "/**");
        }

        // If repository is specified, add repository-based patterns
        if (comp.repository() != null && !comp.repository().isEmpty()) {
            String repoName = comp.repository().replaceAll(CHAR_SLASH, "").replaceAll("\\" + CHAR_GIT_SUFFIX + "$", "");
            patterns.add(repoName + "/**");
        }

        // Fallback pattern
        if (patterns.isEmpty()) {
            patterns.add("**/*" + capitalize(baseName) + "*");
        }

        return patterns;
    }