{
  "rootDir": "./",

  "include": [
    "app/**",
    "pages/**",
    "src/**",
    "lib/**",
    "components/**",
    "services/**",
    "middleware.ts"
  ],

  "exclude": [
    "**/*.test.ts",
    "**/*.test.tsx",
    "**/*.spec.ts",
    "**/*.spec.tsx",
    "**/*.stories.tsx",
    "**/node_modules/**",
    "**/.next/**",
    "**/dist/**",
    "**/coverage/**"
  ],

  "layers": [
    {
      "name": "UI",
      "patterns": ["**/app/**/page.tsx", "**/pages/**", "**/components/**"],
      "color": "#3B82F6"
    },
    {
      "name": "API",
      "patterns": ["**/app/api/**", "**/pages/api/**", "**/middleware.ts"],
      "color": "#10B981"
    },
    {
      "name": "Service",
      "patterns": ["**/services/**"],
      "color": "#F59E0B"
    },
    {
      "name": "Core",
      "patterns": ["**/lib/**", "**/utils/**", "**/prisma/**", "**/db/**", "**/models/**"],
      "color": "#8B5CF6"
    }
  ],

  "domains": [
    {
      "name": "AccessControl",
      "patterns": ["**/auth/**", "**/login/**", "**/middleware.ts"],
      "critical": true
    },
    {
      "name": "Billing",
      "patterns": ["**/billing/**", "**/payments/**"]
    },
    {
      "name": "Catalog",
      "patterns": ["**/catalog/**", "**/products/**"]
    }
  ],

  "externalServices": [
    {
      "name": "PostgreSQL",
      "patterns": ["@prisma/client", "prisma"],
      "type": "Database"
    },
    {
      "name": "NextAuth",
      "patterns": ["next-auth"],
      "type": "Auth"
    },
    {
      "name": "Vercel KV",
      "patterns": ["@vercel/kv"],
      "type": "Cache"
    }
  ],

  "output": {
    "formats": ["markdown", "html", "svg"]
  }
}
