{
  "id": "C017",
  "name": "C017_constructor_logic",
  "category": "architecture",
  "description": "C017 - Do not put business logic inside constructors.",
  "severity": "warning",
  "enabled": true,
  "semantic": {
    "enabled": true,
    "priority": "high",
    "fallback": "heuristic"
  },
  "patterns": {
    "include": [
      "**/*.js",
      "**/*.ts",
      "**/*.jsx",
      "**/*.tsx"
    ],
    "exclude": [
      "**/*.test.*",
      "**/*.spec.*",
      "**/*.mock.*",
      "**/test/**",
      "**/tests/**",
      "**/spec/**"
    ]
  },
  "options": {
    "strictMode": false,
    "allowedDbMethods": [],
    "repositoryPatterns": [
      "*Repository*",
      "*Repo*",
      "*DAO*",
      "*Store*"
    ],
    "servicePatterns": [
      "*Service*",
      "*UseCase*",
      "*Handler*",
      "*Manager*"
    ],
    "complexityThreshold": {
      "methodLength": 200,
      "cyclomaticComplexity": 5,
      "nestedDepth": 3
    }
  }
}
