[
  {
    "id": "mistake_001",
    "pattern": "Storing passwords in plain text",
    "context": "User registration endpoint implementation",
    "frequency": 2,
    "last_occurred": "2024-01-14T15:30:00.000Z",
    "solutions": [
      "Use bcrypt.hashpw() to hash passwords before storing",
      "Never store plain text passwords in database",
      "Use environment variables for salt rounds"
    ]
  },
  {
    "id": "mistake_002", 
    "pattern": "Missing input validation on API endpoints",
    "context": "REST API development",
    "frequency": 3,
    "last_occurred": "2024-01-14T16:45:00.000Z",
    "solutions": [
      "Use Pydantic models for request validation",
      "Add @validate_json decorator to endpoints",
      "Return 400 Bad Request for invalid input"
    ]
  },
  {
    "id": "mistake_003",
    "pattern": "Not writing tests before implementation",
    "context": "TDD workflow violation",
    "frequency": 1,
    "last_occurred": "2024-01-13T14:20:00.000Z",
    "solutions": [
      "Always write failing tests first",
      "Use test-driven development cycle: Red -> Green -> Refactor",
      "Ensure tests fail before writing implementation"
    ]
  },
  {
    "id": "mistake_004",
    "pattern": "Hardcoding configuration values",
    "context": "Database connection setup",
    "frequency": 2,
    "last_occurred": "2024-01-12T11:15:00.000Z",
    "solutions": [
      "Use environment variables for configuration",
      "Create a config.py file with settings classes",
      "Use python-dotenv for local development"
    ]
  },
  {
    "id": "mistake_005",
    "pattern": "Missing error handling in async functions",
    "context": "Database operations",
    "frequency": 1,
    "last_occurred": "2024-01-11T09:30:00.000Z",
    "solutions": [
      "Wrap database calls in try-catch blocks",
      "Handle specific exceptions (IntegrityError, etc.)",
      "Return meaningful error messages to client"
    ]
  }
]
