{
  "generatedFrom": "src (createErrorResponse call sites)",
  "codes": {
    "NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Lake not found",
        "Thumbnail file not found",
        "One or more tags not found",
        "Article not found",
        "Thumbnail not found",
        "Comment not found",
        "Tag not found",
        "Category not found",
        "Category not found or inactive",
        "Thread not found",
        "Parent reply not found",
        "Reply not found",
        "Vote not found",
        "Message group not found",
        "Receiver not found",
        "Message not found"
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 36,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 46,
          "status": 404,
          "message": "Thumbnail file not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 56,
          "status": 404,
          "message": "One or more tags not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 375,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 484,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 518,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 534,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 544,
          "status": 404,
          "message": "Thumbnail not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 554,
          "status": 404,
          "message": "One or more tags not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 639,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 661,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 700,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 824,
          "status": 404,
          "message": "Comment not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 897,
          "status": 404,
          "message": "Tag not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 907,
          "status": 404,
          "message": "Tag not found"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 958,
          "status": 404,
          "message": "Tag not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 82,
          "status": 404,
          "message": "Category not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 94,
          "status": 404,
          "message": "Category not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 130,
          "status": 404,
          "message": "Category not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 156,
          "status": 404,
          "message": "Category not found or inactive"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 321,
          "status": 404,
          "message": "Category not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 364,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 382,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 431,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 453,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 475,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 513,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 527,
          "status": 404,
          "message": "Parent reply not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 682,
          "status": 404,
          "message": "Reply not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 723,
          "status": 404,
          "message": "Reply not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 784,
          "status": 404,
          "message": "Thread not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 839,
          "status": 404,
          "message": "Reply not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 898,
          "status": 404,
          "message": "Vote not found"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 919,
          "status": 404,
          "message": "Vote not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 72,
          "status": 404,
          "message": "Message group not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 89,
          "status": 404,
          "message": "Receiver not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 107,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 402,
          "status": 404,
          "message": "Message not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 424,
          "status": 404,
          "message": "Message not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 488,
          "status": 404,
          "message": "Message not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 549,
          "status": 404,
          "message": "Message not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 742,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 851,
          "status": 404,
          "message": "Message group not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 937,
          "status": 404,
          "message": "Message group not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 961,
          "status": 404,
          "message": "Message group not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 977,
          "status": 404,
          "message": "Article not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 1021,
          "status": 404,
          "message": "Message group not found"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 1061,
          "status": 404,
          "message": "Message group not found"
        }
      ]
    },
    "NO_PERMISSION": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only view versions of your own articles",
        "You can only update your own articles",
        "You can only delete your own articles",
        "You can only attach files you uploaded",
        "You can only delete your own comments"
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 490,
          "status": 403,
          "message": "You can only view versions of your own articles"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 523,
          "status": 403,
          "message": "You can only update your own articles"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 644,
          "status": 403,
          "message": "You can only delete your own articles"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 731,
          "status": 403,
          "message": "You can only attach files you uploaded"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 829,
          "status": 403,
          "message": "You can only delete your own comments"
        }
      ]
    },
    "BAD_REQUEST": {
      "statuses": [
        403,
        400
      ],
      "messages": [
        "Comments are not allowed on this article",
        "`File ${f.originalname} is too large. Maximum size is 50MB.`",
        "No file provided",
        "File too large. Maximum size is 50MB.",
        "No files provided",
        "`File ${file.originalname} is too large. Maximum size is 50MB.`",
        "Invalid image file"
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 704,
          "status": 403,
          "message": "Comments are not allowed on this article"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 714,
          "status": 400,
          "message": "`File ${f.originalname} is too large. Maximum size is 50MB.`"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 968,
          "status": 400,
          "message": "No file provided"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 974,
          "status": 400,
          "message": "File too large. Maximum size is 50MB."
        },
        {
          "file": "articles/articles.service.ts",
          "line": 1054,
          "status": 400,
          "message": "No files provided"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 1062,
          "status": 400,
          "message": "`File ${file.originalname} is too large. Maximum size is 50MB.`"
        },
        {
          "file": "files/files.controller.ts",
          "line": 103,
          "status": 400,
          "message": "No file provided"
        },
        {
          "file": "files/files.controller.ts",
          "line": 114,
          "status": 400,
          "message": "Invalid image file"
        },
        {
          "file": "files/files.controller.ts",
          "line": 154,
          "status": 400,
          "message": "No file provided"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 553,
          "status": 400,
          "message": "No files provided"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 561,
          "status": 400,
          "message": "`File ${file.originalname} is too large. Maximum size is 50MB.`"
        }
      ]
    },
    "CONFLICT": {
      "statuses": [
        400
      ],
      "messages": [
        "Tag with this name or slug already exists"
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 859,
          "status": 400,
          "message": "Tag with this name or slug already exists"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 937,
          "status": 400,
          "message": "Tag with this name or slug already exists"
        }
      ]
    },
    "INVALID_FILE_TYPE": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid file type. Only images (JPEG, PNG, GIF, WEBP) are allowed."
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 988,
          "status": 400,
          "message": "Invalid file type. Only images (JPEG, PNG, GIF, WEBP) are allowed."
        }
      ]
    },
    "INTERNAL_SERVER_ERROR": {
      "statuses": [
        500
      ],
      "messages": [
        "Failed to save thumbnail",
        "Failed to upload files",
        "Failed to get article files",
        "Failed to delete file"
      ],
      "sites": [
        {
          "file": "articles/articles.service.ts",
          "line": 1044,
          "status": 500,
          "message": "Failed to save thumbnail"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 1149,
          "status": 500,
          "message": "Failed to upload files"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 1184,
          "status": 500,
          "message": "Failed to get article files"
        },
        {
          "file": "articles/articles.service.ts",
          "line": 1259,
          "status": 500,
          "message": "Failed to delete file"
        }
      ]
    },
    "USER_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "User already exists"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 87,
          "status": 400,
          "message": "User already exists"
        }
      ]
    },
    "INVALID_COUNTRY": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid country selected"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 95,
          "status": 400,
          "message": "Invalid country selected"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 79,
          "status": 400,
          "message": "Invalid country selected"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 489,
          "status": 400,
          "message": "Invalid country selected"
        }
      ]
    },
    "INVALID_ROLE": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid role selected"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 99,
          "status": 400,
          "message": "Invalid role selected"
        }
      ]
    },
    "INVALID_COMPANY_SELECTION": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot specify both existing company and new company"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 107,
          "status": 400,
          "message": "Cannot specify both existing company and new company"
        }
      ]
    },
    "COMPANY_REQUIRED": {
      "statuses": [
        400
      ],
      "messages": [
        "Organizations must specify a company",
        "Company ID or new company information is required for ORGANIZATION or MANAGER roles"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 116,
          "status": 400,
          "message": "Organizations must specify a company"
        },
        {
          "file": "users/users.service.ts",
          "line": 398,
          "status": 400,
          "message": "Company ID or new company information is required for ORGANIZATION or MANAGER roles"
        }
      ]
    },
    "INVALID_COMPANY": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid company selected"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 127,
          "status": 400,
          "message": "Invalid company selected"
        }
      ]
    },
    "INVALID_CITY": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid city selected for company"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 138,
          "status": 400,
          "message": "Invalid city selected for company"
        }
      ]
    },
    "NOT_AUTHENTICATED": {
      "statuses": [
        401
      ],
      "messages": [
        "Not authenticated"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 251,
          "status": 401,
          "message": "Not authenticated"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 352,
          "status": 401,
          "message": "Not authenticated"
        },
        {
          "file": "users/users.service.ts",
          "line": 1208,
          "status": 401,
          "message": "Not authenticated"
        },
        {
          "file": "users/users.service.ts",
          "line": 1268,
          "status": 401,
          "message": "Not authenticated"
        }
      ]
    },
    "USER_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "User not found"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 273,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 315,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 329,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 427,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 488,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 841,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 979,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "permissions/permissions.service.ts",
          "line": 284,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "permissions/permissions.service.ts",
          "line": 353,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 110,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 124,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 155,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 190,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 235,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 256,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 364,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 539,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 601,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 649,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 838,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 1047,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 1133,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 1216,
          "status": 404,
          "message": "User not found"
        },
        {
          "file": "users/users.service.ts",
          "line": 1316,
          "status": 404,
          "message": "User not found"
        }
      ]
    },
    "INVALID_PASSWORD": {
      "statuses": [
        400
      ],
      "messages": [
        "Current password is incorrect",
        "Invalid password",
        "Invalid current password"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 360,
          "status": 400,
          "message": "Current password is incorrect"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 846,
          "status": 400,
          "message": "Invalid password"
        },
        {
          "file": "users/users.service.ts",
          "line": 160,
          "status": 400,
          "message": "Invalid current password"
        },
        {
          "file": "users/users.service.ts",
          "line": 850,
          "status": 400,
          "message": "Invalid password"
        },
        {
          "file": "users/users.service.ts",
          "line": 1274,
          "status": 400,
          "message": "Invalid password"
        }
      ]
    },
    "INVALID_TOKEN": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid verification token",
        "Invalid reset token",
        "Invalid restoration token",
        "Invalid or expired email change token"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 395,
          "status": 400,
          "message": "Invalid verification token"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 539,
          "status": 400,
          "message": "Invalid reset token"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 767,
          "status": 400,
          "message": "Invalid restoration token"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 925,
          "status": 400,
          "message": "Invalid or expired email change token"
        },
        {
          "file": "users/users.service.ts",
          "line": 772,
          "status": 400,
          "message": "Invalid restoration token"
        }
      ]
    },
    "TOKEN_EXPIRED": {
      "statuses": [
        400
      ],
      "messages": [
        "Verification token has expired",
        "Reset token has expired",
        "Restoration token has expired",
        "Email change token has expired"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 406,
          "status": 400,
          "message": "Verification token has expired"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 543,
          "status": 400,
          "message": "Reset token has expired"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 771,
          "status": 400,
          "message": "Restoration token has expired"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 934,
          "status": 400,
          "message": "Email change token has expired"
        },
        {
          "file": "users/users.service.ts",
          "line": 776,
          "status": 400,
          "message": "Restoration token has expired"
        }
      ]
    },
    "ALREADY_VERIFIED": {
      "statuses": [
        400
      ],
      "messages": [
        "Email is already verified"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 431,
          "status": 400,
          "message": "Email is already verified"
        }
      ]
    },
    "ACCOUNT_NOT_DELETED": {
      "statuses": [
        400
      ],
      "messages": [
        "Account is not deleted"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 698,
          "status": 400,
          "message": "Account is not deleted"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 778,
          "status": 400,
          "message": "Account is not deleted"
        },
        {
          "file": "users/users.service.ts",
          "line": 702,
          "status": 400,
          "message": "Account is not deleted"
        },
        {
          "file": "users/users.service.ts",
          "line": 783,
          "status": 400,
          "message": "Account is not deleted"
        }
      ]
    },
    "ACCOUNT_ANONYMIZED": {
      "statuses": [
        400
      ],
      "messages": [
        "Account has been anonymized and cannot be restored"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 704,
          "status": 400,
          "message": "Account has been anonymized and cannot be restored"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 783,
          "status": 400,
          "message": "Account has been anonymized and cannot be restored"
        },
        {
          "file": "users/users.service.ts",
          "line": 708,
          "status": 400,
          "message": "Account has been anonymized and cannot be restored"
        },
        {
          "file": "users/users.service.ts",
          "line": 788,
          "status": 400,
          "message": "Account has been anonymized and cannot be restored"
        }
      ]
    },
    "RESTORATION_EXPIRED": {
      "statuses": [
        400
      ],
      "messages": [
        "Account restoration period has expired"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 714,
          "status": 400,
          "message": "Account restoration period has expired"
        },
        {
          "file": "users/users.service.ts",
          "line": 718,
          "status": 400,
          "message": "Account restoration period has expired"
        }
      ]
    },
    "SAME_EMAIL": {
      "statuses": [
        400
      ],
      "messages": [
        "New email must be different from current email"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 852,
          "status": 400,
          "message": "New email must be different from current email"
        }
      ]
    },
    "EMAIL_IN_USE": {
      "statuses": [
        400
      ],
      "messages": [
        "This email is already in use",
        "This email is no longer available"
      ],
      "sites": [
        {
          "file": "auth/auth.service.ts",
          "line": 862,
          "status": 400,
          "message": "This email is already in use"
        },
        {
          "file": "auth/auth.service.ts",
          "line": 949,
          "status": 400,
          "message": "This email is no longer available"
        }
      ]
    },
    "SLUG_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "Category slug already exists",
        "Thread slug already exists. Please try again.",
        "Thread slug already exists"
      ],
      "sites": [
        {
          "file": "forum/forum.service.ts",
          "line": 32,
          "status": 400,
          "message": "Category slug already exists"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 107,
          "status": 400,
          "message": "Category slug already exists"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 168,
          "status": 400,
          "message": "Thread slug already exists. Please try again."
        },
        {
          "file": "forum/forum.service.ts",
          "line": 400,
          "status": 400,
          "message": "Thread slug already exists"
        }
      ]
    },
    "CATEGORY_HAS_THREADS": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot delete category with existing threads"
      ],
      "sites": [
        {
          "file": "forum/forum.service.ts",
          "line": 135,
          "status": 400,
          "message": "Cannot delete category with existing threads"
        }
      ]
    },
    "FILE_TOO_LARGE": {
      "statuses": [
        400
      ],
      "messages": [
        "`File ${f.originalname} exceeds 50MB limit`"
      ],
      "sites": [
        {
          "file": "forum/forum.service.ts",
          "line": 177,
          "status": 400,
          "message": "`File ${f.originalname} exceeds 50MB limit`"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 500,
          "status": 400,
          "message": "`File ${f.originalname} exceeds 50MB limit`"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 48,
          "status": 400,
          "message": "`File ${f.originalname} exceeds 50MB limit`"
        }
      ]
    },
    "FORBIDDEN": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only edit your own threads",
        "You can only delete your own threads",
        "You can only edit your own replies",
        "You can only delete your own replies",
        "You do not have access to this notification",
        "You can only update your own POIs",
        "You do not have permission to delete files from this POI"
      ],
      "sites": [
        {
          "file": "forum/forum.service.ts",
          "line": 387,
          "status": 403,
          "message": "You can only edit your own threads"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 436,
          "status": 403,
          "message": "You can only delete your own threads"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 687,
          "status": 403,
          "message": "You can only edit your own replies"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 728,
          "status": 403,
          "message": "You can only delete your own replies"
        },
        {
          "file": "notifications/notifications.service.ts",
          "line": 66,
          "status": 403,
          "message": "You do not have access to this notification"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 471,
          "status": 403,
          "message": "You can only update your own POIs"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 667,
          "status": 403,
          "message": "You do not have permission to delete files from this POI"
        }
      ]
    },
    "THREAD_LOCKED": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot reply to locked thread",
        "Cannot edit replies in locked thread",
        "Cannot delete replies in locked thread"
      ],
      "sites": [
        {
          "file": "forum/forum.service.ts",
          "line": 517,
          "status": 400,
          "message": "Cannot reply to locked thread"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 692,
          "status": 400,
          "message": "Cannot edit replies in locked thread"
        },
        {
          "file": "forum/forum.service.ts",
          "line": 734,
          "status": 400,
          "message": "Cannot delete replies in locked thread"
        }
      ]
    },
    "LAKE_NOT_FOUND": {
      "statuses": [
        400,
        404
      ],
      "messages": [
        "Lake not found"
      ],
      "sites": [
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 21,
          "status": 400,
          "message": "Lake not found"
        },
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 250,
          "status": 400,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 479,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 709,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 729,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 763,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 830,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 886,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 941,
          "status": 404,
          "message": "Lake not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 970,
          "status": 404,
          "message": "Lake not found"
        }
      ]
    },
    "LAKE_DATA_TYPE_NOT_FOUND": {
      "statuses": [
        400
      ],
      "messages": [
        "Lake data type not found"
      ],
      "sites": [
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 32,
          "status": 400,
          "message": "Lake data type not found"
        },
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 262,
          "status": 400,
          "message": "Lake data type not found"
        }
      ]
    },
    "LAKE_DATA_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Lake data not found"
      ],
      "sites": [
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 220,
          "status": 404,
          "message": "Lake data not found"
        },
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 234,
          "status": 404,
          "message": "Lake data not found"
        },
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 338,
          "status": 404,
          "message": "Lake data not found"
        }
      ]
    },
    "FORBIDDEN_UPDATE": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only update your own lake data"
      ],
      "sites": [
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 239,
          "status": 403,
          "message": "You can only update your own lake data"
        }
      ]
    },
    "FORBIDDEN_DELETE": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only delete your own lake data",
        "You can only delete your own POIs"
      ],
      "sites": [
        {
          "file": "lake-data/lake-data.service.ts",
          "line": 343,
          "status": 403,
          "message": "You can only delete your own lake data"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 270,
          "status": 403,
          "message": "You can only delete your own POIs"
        }
      ]
    },
    "FORBIDDEN_LAKE_EDIT": {
      "statuses": [
        403
      ],
      "messages": [
        "You do not have permission to edit this lake"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 66,
          "status": 403,
          "message": "You do not have permission to edit this lake"
        }
      ]
    },
    "INVALID_LAKE_TYPE": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid lake type selected"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 90,
          "status": 400,
          "message": "Invalid lake type selected"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 501,
          "status": 400,
          "message": "Invalid lake type selected"
        }
      ]
    },
    "LAKE_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "A lake with this name already exists in the selected country"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 105,
          "status": 400,
          "message": "A lake with this name already exists in the selected country"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 521,
          "status": 400,
          "message": "A lake with this name already exists in the selected country"
        }
      ]
    },
    "LAKE_TYPE_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "A lake type with this name already exists"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 166,
          "status": 400,
          "message": "A lake type with this name already exists"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 206,
          "status": 400,
          "message": "A lake type with this name already exists"
        }
      ]
    },
    "LAKE_TYPE_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Lake type not found"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 192,
          "status": 404,
          "message": "Lake type not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 230,
          "status": 404,
          "message": "Lake type not found"
        }
      ]
    },
    "LAKE_TYPE_IN_USE": {
      "statuses": [
        400
      ],
      "messages": [
        "`Cannot delete lake type. It is being used by ${lakesUsingType} lakes.`"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 240,
          "status": 400,
          "message": "`Cannot delete lake type. It is being used by ${lakesUsingType} lakes.`"
        }
      ]
    },
    "LAKE_HAS_DATA": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot delete lake with existing data. Please remove all lake data first."
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 735,
          "status": 400,
          "message": "Cannot delete lake with existing data. Please remove all lake data first."
        }
      ]
    },
    "NO_FILE_PROVIDED": {
      "statuses": [
        400
      ],
      "messages": [
        "No file provided"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 822,
          "status": 400,
          "message": "No file provided"
        },
        {
          "file": "users/users.service.ts",
          "line": 244,
          "status": 400,
          "message": "No file provided"
        }
      ]
    },
    "NO_FILES_PROVIDED": {
      "statuses": [
        400
      ],
      "messages": [
        "No files provided"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 878,
          "status": 400,
          "message": "No files provided"
        }
      ]
    },
    "ASSIGNMENT_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "User is already assigned to this lake"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 988,
          "status": 400,
          "message": "User is already assigned to this lake"
        }
      ]
    },
    "ASSIGNMENT_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Lake assignment not found"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 1075,
          "status": 404,
          "message": "Lake assignment not found"
        }
      ]
    },
    "PARAMETER_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "A parameter with this name already exists"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 1226,
          "status": 400,
          "message": "A parameter with this name already exists"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 1299,
          "status": 400,
          "message": "A parameter with this name already exists"
        }
      ]
    },
    "PARAMETER_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Lake parameter not found",
        "Parameter not found for this POI"
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 1272,
          "status": 404,
          "message": "Lake parameter not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 1285,
          "status": 404,
          "message": "Lake parameter not found"
        },
        {
          "file": "lakes/lakes.service.ts",
          "line": 1340,
          "status": 404,
          "message": "Lake parameter not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 378,
          "status": 404,
          "message": "Parameter not found for this POI"
        }
      ]
    },
    "PARAMETER_IN_USE": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot delete parameter that is being used by POIs. Please remove it from all POIs first."
      ],
      "sites": [
        {
          "file": "lakes/lakes.service.ts",
          "line": 1346,
          "status": 400,
          "message": "Cannot delete parameter that is being used by POIs. Please remove it from all POIs first."
        }
      ]
    },
    "FORBIDDEN_MODERATION": {
      "statuses": [
        403
      ],
      "messages": [
        "You do not have POI moderation permissions"
      ],
      "sites": [
        {
          "file": "moderation/moderation.service.ts",
          "line": 101,
          "status": 403,
          "message": "You do not have POI moderation permissions"
        },
        {
          "file": "moderation/moderation.service.ts",
          "line": 195,
          "status": 403,
          "message": "You do not have POI moderation permissions"
        },
        {
          "file": "moderation/moderation.service.ts",
          "line": 240,
          "status": 403,
          "message": "You do not have POI moderation permissions"
        },
        {
          "file": "moderation/moderation.service.ts",
          "line": 566,
          "status": 403,
          "message": "You do not have POI moderation permissions"
        }
      ]
    },
    "POI_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "POI not found",
        "You can only read feedback on your own observations"
      ],
      "sites": [
        {
          "file": "moderation/moderation.service.ts",
          "line": 205,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "moderation/moderation.service.ts",
          "line": 211,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "moderation/poi-feedback.service.ts",
          "line": 63,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "moderation/poi-feedback.service.ts",
          "line": 72,
          "status": 404,
          "message": "You can only read feedback on your own observations"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 251,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 265,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 302,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 360,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 466,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 662,
          "status": 404,
          "message": "POI not found"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 729,
          "status": 404,
          "message": "POI not found"
        }
      ]
    },
    "NO_CONTENT_CHANGES": {
      "statuses": [
        400
      ],
      "messages": [
        "No content changes provided"
      ],
      "sites": [
        {
          "file": "moderation/moderation.service.ts",
          "line": 456,
          "status": 400,
          "message": "No content changes provided"
        }
      ]
    },
    "FILE_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Active image not found for this POI",
        "File not found for this POI"
      ],
      "sites": [
        {
          "file": "moderation/moderation.service.ts",
          "line": 512,
          "status": 404,
          "message": "Active image not found for this POI"
        },
        {
          "file": "pois/pois.service.ts",
          "line": 685,
          "status": 404,
          "message": "File not found for this POI"
        }
      ]
    },
    "NOTIFICATION_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Notification not found"
      ],
      "sites": [
        {
          "file": "notifications/notifications.service.ts",
          "line": 61,
          "status": 404,
          "message": "Notification not found"
        }
      ]
    },
    "PERMISSION_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "Permission already exists"
      ],
      "sites": [
        {
          "file": "permissions/permissions.service.ts",
          "line": 32,
          "status": 400,
          "message": "Permission already exists"
        }
      ]
    },
    "PERMISSION_NOT_FOUND": {
      "statuses": [
        404
      ],
      "messages": [
        "Permission not found"
      ],
      "sites": [
        {
          "file": "permissions/permissions.service.ts",
          "line": 108,
          "status": 404,
          "message": "Permission not found"
        },
        {
          "file": "permissions/permissions.service.ts",
          "line": 122,
          "status": 404,
          "message": "Permission not found"
        },
        {
          "file": "permissions/permissions.service.ts",
          "line": 164,
          "status": 404,
          "message": "Permission not found"
        }
      ]
    },
    "PERMISSION_NAME_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "Permission name already exists"
      ],
      "sites": [
        {
          "file": "permissions/permissions.service.ts",
          "line": 133,
          "status": 400,
          "message": "Permission name already exists"
        }
      ]
    },
    "INVALID_PERMISSIONS": {
      "statuses": [
        400
      ],
      "messages": [
        "Some permissions do not exist"
      ],
      "sites": [
        {
          "file": "permissions/permissions.service.ts",
          "line": 241,
          "status": 400,
          "message": "Some permissions do not exist"
        },
        {
          "file": "permissions/permissions.service.ts",
          "line": 363,
          "status": 400,
          "message": "Some permissions do not exist"
        }
      ]
    },
    "INVALID_GEOMETRY_DATA": {
      "statuses": [
        400
      ],
      "messages": [
        "Must provide either coordinates and longitude/latitude (for polygon) or longitude and latitude (for point).",
        "Invalid coordinates. When creating a polygon type Point of Interest, longitude and latitude are also required.",
        "Invalid coordinates. When updating a polygon type Point of Interest, longitude and latitude are also required."
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 28,
          "status": 400,
          "message": "Must provide either coordinates and longitude/latitude (for polygon) or longitude and latitude (for point)."
        },
        {
          "file": "pois/pois.service.ts",
          "line": 37,
          "status": 400,
          "message": "Invalid coordinates. When creating a polygon type Point of Interest, longitude and latitude are also required."
        },
        {
          "file": "pois/pois.service.ts",
          "line": 478,
          "status": 400,
          "message": "Invalid coordinates. When updating a polygon type Point of Interest, longitude and latitude are also required."
        },
        {
          "file": "pois/pois.service.ts",
          "line": 488,
          "status": 400,
          "message": "Must provide either coordinates and longitude/latitude (for polygon) or longitude and latitude (for point)."
        }
      ]
    },
    "FORBIDDEN_PARAMETER_ADD": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only add parameters to your own POIs"
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 307,
          "status": 403,
          "message": "You can only add parameters to your own POIs"
        }
      ]
    },
    "LAKE_PARAMETER_NOT_FOUND": {
      "statuses": [
        400
      ],
      "messages": [
        "Lake parameter not found"
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 317,
          "status": 400,
          "message": "Lake parameter not found"
        }
      ]
    },
    "PARAMETER_ALREADY_EXISTS": {
      "statuses": [
        400
      ],
      "messages": [
        "Parameter already exists for this POI"
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 330,
          "status": 400,
          "message": "Parameter already exists for this POI"
        }
      ]
    },
    "FORBIDDEN_PARAMETER_REMOVE": {
      "statuses": [
        403
      ],
      "messages": [
        "You can only remove parameters from your own POIs"
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 365,
          "status": 403,
          "message": "You can only remove parameters from your own POIs"
        }
      ]
    },
    "UPLOAD_FAILED": {
      "statuses": [
        500
      ],
      "messages": [
        "Failed to upload files"
      ],
      "sites": [
        {
          "file": "pois/pois.service.ts",
          "line": 648,
          "status": 500,
          "message": "Failed to upload files"
        }
      ]
    },
    "INVALID_INPUT": {
      "statuses": [
        400
      ],
      "messages": [
        "Either groupId (for existing conversation) or receiverId + subject (for new conversation) must be provided",
        "Cannot specify both groupId and receiverId/subject. Use groupId for existing conversations."
      ],
      "sites": [
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 27,
          "status": 400,
          "message": "Either groupId (for existing conversation) or receiverId + subject (for new conversation) must be provided"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 36,
          "status": 400,
          "message": "Cannot specify both groupId and receiverId/subject. Use groupId for existing conversations."
        }
      ]
    },
    "ACCESS_DENIED": {
      "statuses": [
        403
      ],
      "messages": [
        "Access denied - you are not a participant in this group",
        "Access denied - you can only view messages from groups you participate in",
        "Access denied - only the message sender can update messages",
        "Access denied - only group participants can mark messages as read/unread",
        "Access denied - you can only delete messages from groups you participate in"
      ],
      "sites": [
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 78,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 408,
          "status": 403,
          "message": "Access denied - you can only view messages from groups you participate in"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 430,
          "status": 403,
          "message": "Access denied - only the message sender can update messages"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 494,
          "status": 403,
          "message": "Access denied - only group participants can mark messages as read/unread"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 555,
          "status": 403,
          "message": "Access denied - you can only delete messages from groups you participate in"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 857,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 943,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 967,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 1027,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        },
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 1067,
          "status": 403,
          "message": "Access denied - you are not a participant in this group"
        }
      ]
    },
    "INVALID_RECEIVER_STATUS": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot send message to inactive or deleted user"
      ],
      "sites": [
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 94,
          "status": 400,
          "message": "Cannot send message to inactive or deleted user"
        }
      ]
    },
    "MESSAGE_READ": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot update a message that has been read"
      ],
      "sites": [
        {
          "file": "private-messages/private-messages.service.ts",
          "line": 436,
          "status": 400,
          "message": "Cannot update a message that has been read"
        }
      ]
    },
    "USER_ALREADY_INACTIVE": {
      "statuses": [
        400
      ],
      "messages": [
        "User is already deactivated"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 195,
          "status": 400,
          "message": "User is already deactivated"
        }
      ]
    },
    "COMPANY_NOT_FOUND": {
      "statuses": [
        400
      ],
      "messages": [
        "Company not found"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 393,
          "status": 400,
          "message": "Company not found"
        }
      ]
    },
    "USER_ALREADY_DELETED": {
      "statuses": [
        400
      ],
      "messages": [
        "User is already deleted"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 543,
          "status": 400,
          "message": "User is already deleted"
        }
      ]
    },
    "USER_DELETED": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot suspend deleted user",
        "Cannot restore deleted user"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 605,
          "status": 400,
          "message": "Cannot suspend deleted user"
        },
        {
          "file": "users/users.service.ts",
          "line": 653,
          "status": 400,
          "message": "Cannot restore deleted user"
        }
      ]
    },
    "ACCOUNT_ALREADY_DELETED": {
      "statuses": [
        400
      ],
      "messages": [
        "Account is already deleted"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 843,
          "status": 400,
          "message": "Account is already deleted"
        }
      ]
    },
    "NOT_ORGANIZATION": {
      "statuses": [
        400
      ],
      "messages": [
        "User is not an organization"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1051,
          "status": 400,
          "message": "User is not an organization"
        },
        {
          "file": "users/users.service.ts",
          "line": 1137,
          "status": 400,
          "message": "User is not an organization"
        }
      ]
    },
    "ALREADY_ACTIVE": {
      "statuses": [
        400
      ],
      "messages": [
        "Organization is already active"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1055,
          "status": 400,
          "message": "Organization is already active"
        }
      ]
    },
    "ORGANIZATION_DELETED": {
      "statuses": [
        400
      ],
      "messages": [
        "Cannot activate deleted organization",
        "Cannot deactivate deleted organization"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1060,
          "status": 400,
          "message": "Cannot activate deleted organization"
        },
        {
          "file": "users/users.service.ts",
          "line": 1148,
          "status": 400,
          "message": "Cannot deactivate deleted organization"
        }
      ]
    },
    "ALREADY_INACTIVE": {
      "statuses": [
        400
      ],
      "messages": [
        "Organization is already inactive"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1142,
          "status": 400,
          "message": "Organization is already inactive"
        }
      ]
    },
    "CANNOT_TARGET_SELF": {
      "statuses": [
        400
      ],
      "messages": [
        "You cannot perform this action on your own account"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1211,
          "status": 400,
          "message": "You cannot perform this action on your own account"
        },
        {
          "file": "users/users.service.ts",
          "line": 1323,
          "status": 400,
          "message": "You cannot perform this action on your own account"
        }
      ]
    },
    "CANNOT_TARGET_ADMIN": {
      "statuses": [
        400
      ],
      "messages": [
        "Admin accounts cannot be deleted or anonymized"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1219,
          "status": 400,
          "message": "Admin accounts cannot be deleted or anonymized"
        },
        {
          "file": "users/users.service.ts",
          "line": 1319,
          "status": 400,
          "message": "Admin accounts cannot be deleted or anonymized"
        }
      ]
    },
    "USER_ALREADY_ANONYMIZED": {
      "statuses": [
        400
      ],
      "messages": [
        "User is already anonymized"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1222,
          "status": 400,
          "message": "User is already anonymized"
        },
        {
          "file": "users/users.service.ts",
          "line": 1331,
          "status": 400,
          "message": "User is already anonymized"
        }
      ]
    },
    "OTP_COOLDOWN": {
      "statuses": [
        400
      ],
      "messages": [
        "Please wait before requesting another code"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1231,
          "status": 400,
          "message": "Please wait before requesting another code"
        }
      ]
    },
    "INVALID_CHALLENGE": {
      "statuses": [
        400
      ],
      "messages": [
        "Invalid or expired verification challenge"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1285,
          "status": 400,
          "message": "Invalid or expired verification challenge"
        }
      ]
    },
    "CODE_EXPIRED": {
      "statuses": [
        400
      ],
      "messages": [
        "Verification code has expired"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1288,
          "status": 400,
          "message": "Verification code has expired"
        }
      ]
    },
    "TOO_MANY_ATTEMPTS": {
      "statuses": [
        400
      ],
      "messages": [
        "Too many attempts; request a new code"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1291,
          "status": 400,
          "message": "Too many attempts; request a new code"
        }
      ]
    },
    "INVALID_CODE": {
      "statuses": [
        400
      ],
      "messages": [
        "Incorrect verification code"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1297,
          "status": 400,
          "message": "Incorrect verification code"
        }
      ]
    },
    "CHALLENGE_ALREADY_USED": {
      "statuses": [
        400
      ],
      "messages": [
        "This verification challenge has already been used"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1310,
          "status": 400,
          "message": "This verification challenge has already been used"
        }
      ]
    },
    "NO_COUNTRY_AVAILABLE": {
      "statuses": [
        500
      ],
      "messages": [
        "Cannot create the placeholder user: no country exists"
      ],
      "sites": [
        {
          "file": "users/users.service.ts",
          "line": 1355,
          "status": 500,
          "message": "Cannot create the placeholder user: no country exists"
        }
      ]
    },
    "ACCOUNT_INACTIVE": {
      "statuses": [
        403
      ],
      "messages": [
        "User account is not active"
      ],
      "sites": [
        {
          "file": "utils/guards/active-user.guard.ts",
          "line": 15,
          "status": 403,
          "message": "User account is not active"
        }
      ]
    },
    "INVALID_CREDENTIALS": {
      "statuses": [
        401
      ],
      "messages": [
        "Invalid credentials"
      ],
      "sites": [
        {
          "file": "utils/strategy/local.strategy.ts",
          "line": 18,
          "status": 401,
          "message": "Invalid credentials"
        }
      ]
    },
    "EMAIL_NOT_VERIFIED": {
      "statuses": [
        401
      ],
      "messages": [
        "Email not verified"
      ],
      "sites": [
        {
          "file": "utils/strategy/local.strategy.ts",
          "line": 21,
          "status": 401,
          "message": "Email not verified"
        }
      ]
    },
    "ACCOUNT_DELETED": {
      "statuses": [
        401
      ],
      "messages": [
        "Account has been deleted"
      ],
      "sites": [
        {
          "file": "utils/strategy/local.strategy.ts",
          "line": 24,
          "status": 401,
          "message": "Account has been deleted"
        }
      ]
    }
  }
}
