{
  "name": "mongoose",
  "type": "database",
  "priority": 5,
  "operations": [
    {
      "type": "create-file",
      "source": "lib/mongoose.ts",
      "destination": "src/database/mongoose.ts",
      "condition": { "framework": "express" }
    },
    {
      "type": "create-file",
      "source": "models/health.ts",
      "destination": "src/modules/health/health.model.ts",
      "condition": { "framework": "express" }
    },
    {
      "type": "patch-file",
      "destination": "src/server.ts",
      "condition": { "framework": "express" },
      "operations": [
        {
          "type": "add-import",
          "imports": ["import { mongoose } from \"./database/mongoose\";"]
        },
        {
          "type": "add-code",
          "after": "try {",
          "code": "await mongoose();"
        }
      ]
    },
    
    {
      "type": "add-dependency",
      "dependencies": {
        "mongoose": "^9.7.1"
      }
    },
    {
      "type": "add-env",
      "envVars": {
        "DATABASE_URL": "mongodb://username:password@localhost:27017/database_name?authSource=admin"
      }
    }
  ]
}