{
  "openapi": "3.0.4",
  "info": {
    "title": "Eduriam API",
    "version": "v1"
  },
  "paths": {
    "/api/auth/signup": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterUserModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterUserModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterUserModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterUserModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/signup-confirm": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegistrationConfirmModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegistrationConfirmModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegistrationConfirmModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegistrationConfirmModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/signup-resend-confirmation": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResendEmailConfirmationModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResendEmailConfirmationModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResendEmailConfirmationModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResendEmailConfirmationModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/signin": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LoginUserModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LoginUserModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LoginUserModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LoginUserModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/reset-password": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResetPasswordModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResetPasswordModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResetPasswordModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ResetPasswordModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/reset-password-confirm": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangePasswordModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangePasswordModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangePasswordModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangePasswordModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/change-email": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/change-email-confirm": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailConfirmModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailConfirmModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailConfirmModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeEmailConfirmModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/refresh-token": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RefreshTokenModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RefreshTokenModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RefreshTokenModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RefreshTokenModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshTokenRespModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/external/google/login": {
      "get": {
        "tags": [
          "auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleAuthUrlResponseModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/external/google/callback": {
      "get": {
        "tags": [
          "auth"
        ],
        "parameters": [
          {
            "name": "Code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "State",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Error",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/external/google/token": {
      "post": {
        "tags": [
          "auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AuthCodeExchangeModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AuthCodeExchangeModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AuthCodeExchangeModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AuthCodeExchangeModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/certificates/{id}": {
      "get": {
        "tags": [
          "certificates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/courses/{courseId}/chapters/{chapterId}": {
      "get": {
        "tags": [
          "courses"
        ],
        "parameters": [
          {
            "name": "courseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "chapterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseChapterModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/lesson/{lessonId}": {
      "get": {
        "tags": [
          "lesson"
        ],
        "parameters": [
          {
            "name": "lessonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetLessonModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/products": {
      "get": {
        "tags": [
          "products"
        ],
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductBaseModelPagedResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/products/{productId}": {
      "get": {
        "tags": [
          "products"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProductCourseModel"
                    },
                    {
                      "$ref": "#/components/schemas/ProductLearningPathModel"
                    }
                  ]
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports": {
      "post": {
        "tags": [
          "reports"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateReportModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateReportModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateReportModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateReportModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shop/items": {
      "get": {
        "tags": [
          "shop"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShopItemViewModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shop/items/{shopItemId}/purchase": {
      "post": {
        "tags": [
          "shop"
        ],
        "parameters": [
          {
            "name": "shopItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shop": {
      "post": {
        "tags": [
          "shop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "SearchName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserSimpleModelPagedResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/settings": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserSettingsModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserSettingsPatchModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserSettingsPatchModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserSettingsPatchModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserSettingsPatchModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserSettingsModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/study-sessions": {
      "post": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionCreateModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionCreateModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionCreateModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionCreateModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudySessionModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/study-sessions/{sessionId}/results": {
      "post": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionResultCreateModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionResultCreateModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionResultCreateModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StudySessionResultCreateModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/devices": {
      "post": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RegisterDeviceTokenModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/study-plan": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StudyPlanOverviewModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/achievements": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserAchievementModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/notices": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoticeModelPagedResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/notices/{noticeId}": {
      "delete": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "noticeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/feed": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedItemResponseModelPagedResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/feed/{feedItemId}/reactions/{reactionId}": {
      "put": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "FeedItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ReactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "FeedItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ReactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/feed/mark-seen": {
      "post": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MarkFeedSeenModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MarkFeedSeenModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MarkFeedSeenModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MarkFeedSeenModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/shop-items": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserOwnedShopItemModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/subscriptions/current": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/subscriptions/current/cancellation": {
      "post": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CancelSubscriptionModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CancelSubscriptionModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CancelSubscriptionModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CancelSubscriptionModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/subscriptions": {
      "post": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSubscriptionRespModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/subscriptions/trial": {
      "post": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSubscriptionRespModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/shop-items/{shopItemId}": {
      "post": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "shopItemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/leaderboard": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserLeaderboardModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/account-setup": {
      "post": {
        "tags": [
          "users"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountSetupModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountSetupModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountSetupModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountSetupModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/{userId}": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUserPublicProfileModel"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/{userId}/following": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetFollowerModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/following": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetFollowerModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/{userId}/followers": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetFollowerModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/followers": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetFollowerModel"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/products": {
      "get": {
        "tags": [
          "users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/ProductCourseModel"
                      },
                      {
                        "$ref": "#/components/schemas/ProductLearningPathModel"
                      }
                    ]
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/products/recommended": {
      "get": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductBaseModelPagedResult"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/products/{productId}": {
      "put": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserCoursePatchModel"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserCoursePatchModel"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserCoursePatchModel"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChangeUserCoursePatchModel"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/following/{userId}": {
      "put": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/user-chests/{userChestId}/open": {
      "post": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userChestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/users/me/user-chests/{userChestId}/double": {
      "put": {
        "tags": [
          "users"
        ],
        "parameters": [
          {
            "name": "userChestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/webhooks/stripe": {
      "post": {
        "tags": [
          "webhooks"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountSetupModel": {
        "type": "object",
        "properties": {
          "dailyGoal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AchievementEarnedNoticeModel": {
        "required": [
          "achievementId",
          "achievementType",
          "badgeIconName",
          "description",
          "title",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "achievementId": {
            "type": "integer",
            "format": "int32"
          },
          "achievementType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AchievementType"
              }
            ]
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "badgeIconName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AchievementType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "LessonCompletions",
          "ReviewCompletions",
          "CourseCompletions",
          "StreakDays",
          "PerfectLessonCompletions",
          "FeedReactions",
          "LeagueTier",
          "LeagueFirstPlaceAny",
          "LeagueFirstPlaceMythic"
        ]
      },
      "ApplicationProblemDetails": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "enum": [
              "ACHIEVEMENT_NOT_FOUND",
              "ALL_LESSONS_COMPLETED",
              "ATOM_DELETE_HAS_DEPENDENCIES",
              "ATOM_NOT_FOUND",
              "CANNOT_FOLLOW_YOURSELF",
              "CERTIFICATE_NOT_FOUND",
              "CHAPTER_DELETE_HAS_DEPENDENCIES",
              "CHAPTER_NOT_FOUND",
              "CHEST_ALREADY_OPENED",
              "CHEST_MUST_BE_OPENED_BEFORE_DOUBLING",
              "CHEST_REWARD_ALREADY_DOUBLED",
              "CLIENT_CREDENTIALS_EXPIRED",
              "COURSE_DELETE_HAS_DEPENDENCIES",
              "COURSE_NOT_FOUND",
              "COURSE_NOT_REGISTERED_FOR_USER",
              "EMAIL_ADDRESS_TAKEN",
              "EMAIL_CONFIRMATION_TOKEN_EXPIRED",
              "EMAIL_NOT_CONFIRMED",
              "ENROLLMENT_NOT_FOUND",
              "FAILED_TO_GENERATE_UNIQUE_USERNAME",
              "FEED_ITEM_FORBIDDEN",
              "FEED_ITEM_NOT_FOUND",
              "FEED_REACTION_INVALID",
              "FEED_REACTION_NOT_FOUND",
              "FORBIDDEN",
              "GOOGLE_ACCOUNT_ALREADY_LINKED",
              "GOOGLE_TOKEN_EXCHANGE_FAILED",
              "INSUFFICIENT_BALANCE",
              "INSUFFICIENT_ENERGY",
              "INTERNAL_SERVER_ERROR",
              "INVALID_CLIENT_CREDENTIALS",
              "INVALID_EMAIL_ADDRESS",
              "INVALID_GOOGLE_TOKEN",
              "INVALID_OR_EXPIRED_AUTH_CODE",
              "INVALID_OR_EXPIRED_STATE",
              "INVALID_REFRESH_TOKEN",
              "INVALID_STUDY_SESSION_MODE",
              "INVALID_USERNAME",
              "LESSON_DELETE_HAS_DEPENDENCIES",
              "LESSON_ID_OR_COURSE_ID_REQUIRED",
              "LESSON_NOT_FOUND",
              "NO_ACTIVE_SUBSCRIPTION",
              "NO_ATOMS_IN_LESSON",
              "NO_CHESTS_CONFIGURED",
              "NO_SUCH_LESSON_IN_COURSE",
              "PASSWORD_TOO_SHORT",
              "PRODUCT_NOT_FOUND",
              "PURCHASE_LIMIT_REACHED",
              "SECTION_DELETE_HAS_DEPENDENCIES",
              "SECTION_NOT_FOUND",
              "SHOP_CONSUME_WRONG_ITEM_TYPE",
              "SHOP_ITEM_INVALID_IMAGE",
              "SHOP_ITEM_NOT_FOUND",
              "SHOP_ITEM_NOT_UNLOCKED",
              "STREAK_FREEZE_ALREADY_CONSUMED",
              "STRIPE_WEBHOOK_INVALID",
              "STUDY_BLOCK_NOT_FOUND",
              "STUDY_PATH_NOT_FOUND",
              "STUDY_SESSION_FORBIDDEN",
              "STUDY_SESSION_NOT_FOUND_OR_EXPIRED",
              "SUBSCRIPTION_CREATE_FAILED",
              "SUBSCRIPTION_IN_PROGRESS",
              "SUBSCRIPTION_LOAD_TRIALED_FAILED",
              "SUBSCRIPTION_LOAD_TRIALING_FAILED",
              "SUBSCRIPTION_RESUME_FAILED",
              "TRIAL_NOT_ELIGIBLE",
              "UNKNOWN_SUBSCRIPTION_ID",
              "USERNAME_TAKEN",
              "USER_CHEST_NOT_FOUND",
              "USER_NOT_AUTHENTICATED",
              "USER_NOT_ENROLLED_IN_COURSE",
              "USER_NOT_FOUND",
              "USER_SHOP_ITEM_NOT_FOUND",
              "VALIDATION_FAILED",
              "WRONG_EMAIL",
              "WRONG_EMAIL_OR_PASSWORD"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AtomProgressCreateModel": {
        "type": "object",
        "properties": {
          "atomId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "rating": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthCodeExchangeModel": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AuthResponseModel": {
        "required": [
          "accessToken",
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AvatarAccessories": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Glasses1",
          "None"
        ]
      },
      "AvatarAccessoriesNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarAccessories"
          }
        ],
        "nullable": true
      },
      "AvatarBackgroundColor": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "LightGray",
          "PastelCyan",
          "PastelOrange",
          "PastelPurple",
          "PastelGreen",
          "PastelPeach"
        ]
      },
      "AvatarBackgroundColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarBackgroundColor"
          }
        ],
        "nullable": true
      },
      "AvatarBeard": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Beard1",
          "Beard2",
          "None"
        ]
      },
      "AvatarBeardColor": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Black",
          "DarkBrown",
          "MediumBrown",
          "Blond",
          "Gray",
          "White"
        ]
      },
      "AvatarBeardColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarBeardColor"
          }
        ],
        "nullable": true
      },
      "AvatarBeardNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarBeard"
          }
        ],
        "nullable": true
      },
      "AvatarClothing": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Shirt1",
          "Shirt2"
        ]
      },
      "AvatarClothingNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarClothing"
          }
        ],
        "nullable": true
      },
      "AvatarExpression": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Expression1",
          "Expression2"
        ]
      },
      "AvatarExpressionNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarExpression"
          }
        ],
        "nullable": true
      },
      "AvatarEyeColor": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "DarkBrown",
          "Brown",
          "Blue",
          "Green",
          "Hazel",
          "White"
        ]
      },
      "AvatarEyeColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarEyeColor"
          }
        ],
        "nullable": true
      },
      "AvatarEyes": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Eyes1",
          "Eyes2"
        ]
      },
      "AvatarEyesNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarEyes"
          }
        ],
        "nullable": true
      },
      "AvatarGlassesColor": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Black",
          "DarkGray",
          "Brown",
          "Navy"
        ]
      },
      "AvatarGlassesColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarGlassesColor"
          }
        ],
        "nullable": true
      },
      "AvatarHair": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Hair1",
          "Hair2",
          "None"
        ]
      },
      "AvatarHairColor": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Black",
          "DarkBrown",
          "MediumBrown",
          "LightBrown",
          "Blond",
          "Gray",
          "White",
          "Red"
        ]
      },
      "AvatarHairColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarHairColor"
          }
        ],
        "nullable": true
      },
      "AvatarHairNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarHair"
          }
        ],
        "nullable": true
      },
      "AvatarHeadwear": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Hat1",
          "Hat2",
          "None"
        ]
      },
      "AvatarHeadwearNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarHeadwear"
          }
        ],
        "nullable": true
      },
      "AvatarModel": {
        "required": [
          "accessories",
          "backgroundColor",
          "beard",
          "beardColor",
          "clothing",
          "expression",
          "eyeColor",
          "eyes",
          "glassesColor",
          "hair",
          "hairColor",
          "headwear",
          "skinColor"
        ],
        "type": "object",
        "properties": {
          "skinColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarSkinColor"
              }
            ]
          },
          "eyes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyes"
              }
            ]
          },
          "eyeColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyeColor"
              }
            ]
          },
          "expression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarExpression"
              }
            ]
          },
          "hair": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHair"
              }
            ]
          },
          "hairColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHairColor"
              }
            ]
          },
          "accessories": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarAccessories"
              }
            ]
          },
          "glassesColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarGlassesColor"
              }
            ]
          },
          "beard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeard"
              }
            ]
          },
          "beardColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeardColor"
              }
            ]
          },
          "headwear": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHeadwear"
              }
            ]
          },
          "clothing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarClothing"
              }
            ]
          },
          "backgroundColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBackgroundColor"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "AvatarSkinColor": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Light",
          "Fair",
          "LightMedium",
          "Medium",
          "Olive",
          "Dark",
          "DeepDark"
        ]
      },
      "AvatarSkinColorNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvatarSkinColor"
          }
        ],
        "nullable": true
      },
      "BooleanNullableOptional": {
        "type": "boolean",
        "nullable": true
      },
      "CancelSubscriptionModel": {
        "type": "object",
        "properties": {
          "unsubscribeReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CertificateModel": {
        "required": [
          "createdAt",
          "id",
          "productName",
          "userName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "userName": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ChangeEmailConfirmModel": {
        "required": [
          "newEmail",
          "token",
          "userId"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "newEmail": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChangeEmailModel": {
        "required": [
          "newEmail"
        ],
        "type": "object",
        "properties": {
          "newEmail": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChangePasswordModel": {
        "required": [
          "password",
          "resetToken",
          "userId"
        ],
        "type": "object",
        "properties": {
          "resetToken": {
            "type": "string"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "password": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChangeUserCoursePatchModel": {
        "type": "object",
        "properties": {
          "studyMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CourseStudyModeNullableOptional"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "ChangeUserSettingsPatchModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "dailyGoal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdateAvatarPatchModelOptional"
              }
            ]
          },
          "productPreferences": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductPreferencesPatchModelOptional"
              }
            ]
          },
          "theme": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThemeModeNullableOptional"
              }
            ]
          },
          "notificationPreferences": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NotificationPreferencesPatchModelOptional"
              }
            ]
          },
          "streakTimeZoneId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChapterLessonModel": {
        "required": [
          "completed",
          "id",
          "name",
          "thumbnailUrl",
          "upcoming"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "completed": {
            "type": "boolean"
          },
          "upcoming": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ChapterModel": {
        "required": [
          "id",
          "order"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ChapterSectionModel": {
        "required": [
          "id",
          "lessons",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "lessons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChapterLessonModel"
            }
          }
        },
        "additionalProperties": false
      },
      "ChestRewardNoticeModel": {
        "required": [
          "chestId",
          "chestName",
          "lessonId",
          "reward",
          "type",
          "userChestId"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "userChestId": {
            "type": "integer",
            "format": "int32"
          },
          "lessonId": {
            "type": "integer",
            "format": "int32"
          },
          "chestId": {
            "type": "integer",
            "format": "int32"
          },
          "chestName": {
            "type": "string"
          },
          "reward": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CourseChapterModel": {
        "required": [
          "id",
          "name",
          "sections"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "sections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChapterSectionModel"
            }
          }
        },
        "additionalProperties": false
      },
      "CourseChapterSummaryModel": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "userProgress": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CourseCompletedNoticeModel": {
        "required": [
          "productName",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "productName": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CourseModel": {
        "required": [
          "id",
          "logoId",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "logoId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CourseStudyMode": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Learn",
          "Review",
          "Paused"
        ]
      },
      "CourseStudyModeNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CourseStudyMode"
          }
        ],
        "nullable": true
      },
      "CreateReportContextModel": {
        "required": [
          "answer",
          "studyBlockId"
        ],
        "type": "object",
        "properties": {
          "studyBlockId": {
            "type": "integer",
            "format": "int32"
          },
          "answer": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateReportModel": {
        "required": [
          "problemTypeId",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReportType"
              }
            ]
          },
          "problemTypeId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReportProblemType"
              }
            ]
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateReportContextModel"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSubscriptionRespModel": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "clientSecret": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FeedItemResponseModel": {
        "required": [
          "author",
          "avatar",
          "id",
          "message",
          "publishedAt",
          "reactions"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedMessageType"
              }
            ]
          },
          "seenByUser": {
            "type": "boolean",
            "nullable": true
          },
          "author": {
            "type": "string"
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "reactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedReactionGroupModel"
            }
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "streak": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "achievementId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "league": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ],
            "nullable": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FeedItemResponseModelPagedResult": {
        "required": [
          "hasNext",
          "hasPrevious",
          "items",
          "page",
          "pageSize",
          "totalItems",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedItemResponseModel"
            }
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasNext": {
            "type": "boolean",
            "readOnly": true
          },
          "hasPrevious": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "FeedMessageType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "StreakMilestone",
          "AchievementEarned",
          "LeaguePromoted",
          "CourseCompleted"
        ]
      },
      "FeedReactionGroupModel": {
        "required": [
          "count",
          "reactionType",
          "userReactions"
        ],
        "type": "object",
        "properties": {
          "reactionType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedReactionType"
              }
            ]
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "userReactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedUserReactionModel"
            }
          }
        },
        "additionalProperties": false
      },
      "FeedReactionType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Confetti",
          "Heart",
          "Muscle",
          "ClappingHands",
          "Sunglasses"
        ]
      },
      "FeedUserReactionModel": {
        "required": [
          "id",
          "reactedAt",
          "reactionType",
          "userId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "reactionType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedReactionType"
              }
            ]
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "reactedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FreeTrialEndNoticeModel": {
        "required": [
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "daysLeft": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FreeTrialNoticeModel": {
        "required": [
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "GetFollowerModel": {
        "required": [
          "avatar",
          "id",
          "isFollowed",
          "name",
          "username"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "isFollowed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetLessonItemInLessonModel": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetLessonModel": {
        "required": [
          "id",
          "lessonItems",
          "name",
          "thumbnailUrl"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "backgroundImageUrl": {
            "type": "string",
            "nullable": true
          },
          "videoId": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "orderOnMap": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lessonItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetLessonItemInLessonModel"
            }
          }
        },
        "additionalProperties": false
      },
      "GetSubscriptionModel": {
        "type": "object",
        "properties": {
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionStatus"
              }
            ],
            "nullable": true
          },
          "currentPeriodEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetUserModel": {
        "required": [
          "accountInitialized",
          "avatar",
          "balance",
          "email",
          "energy",
          "id",
          "name",
          "role",
          "streak",
          "streakFreezes",
          "username",
          "xp"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "email": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "streak": {
            "type": "integer",
            "format": "int32"
          },
          "balance": {
            "type": "number",
            "format": "double"
          },
          "lastSessionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "role": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserRole"
              }
            ]
          },
          "energy": {
            "type": "integer",
            "format": "int32"
          },
          "streakFreezes": {
            "type": "integer",
            "format": "int32"
          },
          "league": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ],
            "nullable": true
          },
          "accountInitialized": {
            "type": "boolean"
          },
          "xp": {
            "type": "integer",
            "format": "int32"
          },
          "activeSubscription": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionModel"
              }
            ],
            "nullable": true
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "GetUserPublicProfileModel": {
        "required": [
          "achievements",
          "avatar",
          "courses",
          "followers",
          "following",
          "id",
          "isFollowed",
          "name",
          "streak",
          "username"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "isFollowed": {
            "type": "boolean"
          },
          "followers": {
            "type": "integer",
            "format": "int32"
          },
          "following": {
            "type": "integer",
            "format": "int32"
          },
          "streak": {
            "type": "integer",
            "format": "int32"
          },
          "league": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ],
            "nullable": true
          },
          "courses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCourseModel"
            }
          },
          "achievements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserAchievementModel"
            }
          }
        },
        "additionalProperties": false
      },
      "GetUserSettingsModel": {
        "required": [
          "avatar",
          "name",
          "themeMode",
          "username"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "streakTimeZoneId": {
            "type": "string",
            "nullable": true
          },
          "dailyGoal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "productPreferences": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductPreferencesModel"
              }
            ],
            "nullable": true
          },
          "themeMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThemeMode"
              }
            ]
          },
          "notificationPreferences": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NotificationPreferencesModel"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetUserSimpleModel": {
        "required": [
          "avatar",
          "id",
          "isFollowed",
          "name",
          "username"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "isFollowed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GetUserSimpleModelPagedResult": {
        "required": [
          "hasNext",
          "hasPrevious",
          "items",
          "page",
          "pageSize",
          "totalItems",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetUserSimpleModel"
            }
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasNext": {
            "type": "boolean",
            "readOnly": true
          },
          "hasPrevious": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "GoogleAuthUrlResponseModel": {
        "required": [
          "authorizationUrl"
        ],
        "type": "object",
        "properties": {
          "authorizationUrl": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "HttpValidationProblemDetails": {
        "required": [
          "errors"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProblemDetails"
          }
        ],
        "properties": {
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": false
      },
      "Int32NullableOptional": {
        "type": "integer",
        "format": "int32",
        "nullable": true
      },
      "LeaderboardEntryModel": {
        "required": [
          "avatarDefinition",
          "id",
          "name",
          "rank",
          "xp"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "rank": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "avatarDefinition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarModel"
              }
            ]
          },
          "xp": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LeaderboardZonesModel": {
        "required": [
          "demotionZoneStartIndex",
          "promotionZoneEndIndex"
        ],
        "type": "object",
        "properties": {
          "promotionZoneEndIndex": {
            "type": "integer",
            "format": "int32"
          },
          "demotionZoneStartIndex": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LeagueDemotedNoticeModel": {
        "required": [
          "league",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "league": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "LeaguePromotedNoticeModel": {
        "required": [
          "league",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "league": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "LeagueType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Iron",
          "Bronze",
          "Silver",
          "Gold",
          "Platinum",
          "Emerald",
          "Ruby",
          "Sapphire",
          "Diamond",
          "Mythic"
        ]
      },
      "LoginUserModel": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MarkFeedSeenModel": {
        "required": [
          "feedItemIds"
        ],
        "type": "object",
        "properties": {
          "feedItemIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "additionalProperties": false
      },
      "NoticeModel": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "activeFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NoticeModelPagedResult": {
        "required": [
          "hasNext",
          "hasPrevious",
          "items",
          "page",
          "pageSize",
          "totalItems",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/StreakMilestoneNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/StreakLostNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/StreakSavedNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/LeaguePromotedNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/LeagueDemotedNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/AchievementEarnedNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/ChestRewardNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/FreeTrialNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/FreeTrialEndNoticeModel"
                },
                {
                  "$ref": "#/components/schemas/CourseCompletedNoticeModel"
                }
              ]
            }
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasNext": {
            "type": "boolean",
            "readOnly": true
          },
          "hasPrevious": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "NoticeType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "StreakMilestone",
          "StreakLost",
          "StreakSaved",
          "LeaguePromoted",
          "LeagueDemoted",
          "AchievementEarned",
          "ChestReward",
          "FreeTrial",
          "FreeTrialEnd",
          "CourseCompleted"
        ]
      },
      "NotificationPreferencesModel": {
        "required": [
          "leaderboardStatus",
          "newFollower",
          "smartStudyReminderEnabled",
          "streakFreezeUsed"
        ],
        "type": "object",
        "properties": {
          "streakFreezeUsed": {
            "type": "boolean"
          },
          "leaderboardStatus": {
            "type": "boolean"
          },
          "newFollower": {
            "type": "boolean"
          },
          "smartStudyReminderEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "NotificationPreferencesPatchModel": {
        "type": "object",
        "properties": {
          "streakFreezeUsed": {
            "type": "boolean",
            "nullable": true
          },
          "leaderboardStatus": {
            "type": "boolean",
            "nullable": true
          },
          "newFollower": {
            "type": "boolean",
            "nullable": true
          },
          "smartStudyReminderEnabled": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NotificationPreferencesPatchModelOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/NotificationPreferencesPatchModel"
          }
        ],
        "nullable": true
      },
      "PreRequisiteModel": {
        "required": [
          "id",
          "productName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "productName": {
            "type": "string"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductAreaOfInterest": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Frontend",
          "Backend",
          "Fullstack",
          "Other"
        ]
      },
      "ProductAreaOfInterestNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductAreaOfInterest"
          }
        ],
        "nullable": true
      },
      "ProductBaseModel": {
        "required": [
          "id",
          "logoId",
          "name",
          "premium",
          "prerequisites",
          "thumbnailUrl",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "userProgress": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "enrolled": {
            "type": "boolean",
            "nullable": true
          },
          "userCertificate": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "logoId": {
            "type": "string"
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "premium": {
            "type": "boolean"
          },
          "prerequisites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PreRequisiteModel"
            }
          },
          "upcomingLessonId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "studyMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CourseStudyMode"
              }
            ],
            "nullable": true
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductType"
              }
            ],
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductBaseModelPagedResult": {
        "required": [
          "hasNext",
          "hasPrevious",
          "items",
          "page",
          "pageSize",
          "totalItems",
          "totalPages"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ProductCourseModel"
                },
                {
                  "$ref": "#/components/schemas/ProductLearningPathModel"
                }
              ]
            }
          },
          "totalItems": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "hasNext": {
            "type": "boolean",
            "readOnly": true
          },
          "hasPrevious": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ProductCodingExperience": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Beginner",
          "Intermediate",
          "Advanced"
        ]
      },
      "ProductCodingExperienceNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductCodingExperience"
          }
        ],
        "nullable": true
      },
      "ProductCourseModel": {
        "required": [
          "chapters",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductBaseModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductType"
              }
            ],
            "readOnly": true
          },
          "chapters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CourseChapterSummaryModel"
            }
          }
        },
        "additionalProperties": false
      },
      "ProductLearningPathModel": {
        "required": [
          "memberProducts",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductBaseModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductType"
              }
            ],
            "readOnly": true
          },
          "memberProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMemberSummaryModel"
            }
          }
        },
        "additionalProperties": false
      },
      "ProductMemberSummaryModel": {
        "required": [
          "id",
          "name",
          "premium"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "premium": {
            "type": "boolean"
          },
          "userProgress": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductPreferencesModel": {
        "type": "object",
        "properties": {
          "codingExperience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductCodingExperience"
              }
            ],
            "nullable": true
          },
          "areaOfInterest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductAreaOfInterest"
              }
            ],
            "nullable": true
          },
          "userGoal": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductUserGoal"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductPreferencesPatchModel": {
        "type": "object",
        "properties": {
          "codingExperience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductCodingExperienceNullableOptional"
              }
            ]
          },
          "areaOfInterest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductAreaOfInterestNullableOptional"
              }
            ]
          },
          "userGoal": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductUserGoalNullableOptional"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "ProductPreferencesPatchModelOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductPreferencesPatchModel"
          }
        ],
        "nullable": true
      },
      "ProductType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Course",
          "StudyPath"
        ]
      },
      "ProductUserGoal": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "SwitchCareer",
          "BuildProject",
          "LearnForSchool",
          "AdvanceCareer",
          "LearnForFun",
          "Other"
        ]
      },
      "ProductUserGoalNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductUserGoal"
          }
        ],
        "nullable": true
      },
      "RefreshTokenModel": {
        "required": [
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RefreshTokenRespModel": {
        "required": [
          "accessToken",
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RegisterDeviceTokenModel": {
        "required": [
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RegisterUserModel": {
        "required": [
          "email",
          "name",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RegistrationConfirmModel": {
        "required": [
          "confirmationToken",
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "confirmationToken": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ReportProblemType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "ExplanationNotUnderstood",
          "ExerciseNotUnderstood",
          "AnswerShouldNotBeAccepted",
          "AnswerShouldBeAccepted",
          "AudioDoesNotSoundRight",
          "AudioMissing",
          "SomethingElseWentWrong",
          "ExplanationStructureShouldBeChanged",
          "ExerciseStructureShouldBeChanged",
          "LessonStructureShouldBeChanged",
          "BugReport",
          "ImprovementSuggestion"
        ]
      },
      "ReportType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "General",
          "StudyBlock"
        ]
      },
      "ResendEmailConfirmationModel": {
        "required": [
          "userId"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ResetPasswordModel": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ShopAvatarSubset": {
        "type": "object",
        "properties": {
          "skinColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarSkinColor"
              }
            ],
            "nullable": true
          },
          "eyes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyes"
              }
            ],
            "nullable": true
          },
          "eyeColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyeColor"
              }
            ],
            "nullable": true
          },
          "expression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarExpression"
              }
            ],
            "nullable": true
          },
          "hair": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHair"
              }
            ],
            "nullable": true
          },
          "hairColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHairColor"
              }
            ],
            "nullable": true
          },
          "accessories": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarAccessories"
              }
            ],
            "nullable": true
          },
          "glassesColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarGlassesColor"
              }
            ],
            "nullable": true
          },
          "beard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeard"
              }
            ],
            "nullable": true
          },
          "beardColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeardColor"
              }
            ],
            "nullable": true
          },
          "headwear": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHeadwear"
              }
            ],
            "nullable": true
          },
          "clothing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarClothing"
              }
            ],
            "nullable": true
          },
          "backgroundColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBackgroundColor"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShopIllustrationKind": {
        "enum": [
          0
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "StreakFreeze"
        ]
      },
      "ShopIllustrationSubset": {
        "required": [
          "kind"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopIllustrationKind"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "ShopImageKind": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Illustration",
          "Avatar"
        ]
      },
      "ShopItemImageModel": {
        "required": [
          "id",
          "kind"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopImageKind"
              }
            ]
          },
          "illustration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopIllustrationSubset"
              }
            ],
            "nullable": true
          },
          "avatar": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopAvatarSubset"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShopItemType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "StreakFreeze",
          "AvatarCosmetic"
        ]
      },
      "ShopItemViewModel": {
        "required": [
          "availableToPurchase",
          "id",
          "image",
          "isLocked",
          "maxPurchasesPerUser",
          "name",
          "price",
          "remainingCount",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopItemType"
              }
            ]
          },
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopItemImageModel"
              }
            ]
          },
          "isLocked": {
            "type": "boolean"
          },
          "availableToPurchase": {
            "type": "integer",
            "format": "int32"
          },
          "requiredAchievementId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxPurchasesPerUser": {
            "type": "integer",
            "format": "int32"
          },
          "remainingCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StreakLostNoticeModel": {
        "required": [
          "previousStreakDays",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "previousStreakDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StreakMilestoneNoticeModel": {
        "required": [
          "streakDays",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "streakDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StreakSavedNoticeModel": {
        "required": [
          "freezesLeft",
          "streakDays",
          "type"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/NoticeModel"
          }
        ],
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoticeType"
              }
            ],
            "readOnly": true
          },
          "streakDays": {
            "type": "integer",
            "format": "int32"
          },
          "freezesLeft": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StringOptional": {
        "type": "string",
        "nullable": true
      },
      "StudyBlockMode": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Learn",
          "Review"
        ]
      },
      "StudyBlockType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Exercise",
          "Explanation"
        ]
      },
      "StudyPlanOverviewModel": {
        "type": "object",
        "properties": {
          "upcomingLearnLesson": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StudyPlanUpcomingLessonModel"
              }
            ],
            "nullable": true
          },
          "upcomingReviewCourse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StudyPlanUpcomingCourseModel"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StudyPlanUpcomingCourseModel": {
        "required": [
          "id",
          "logoId",
          "name",
          "thumbnailUrl"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "logoId": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "StudyPlanUpcomingLessonModel": {
        "required": [
          "chapter",
          "course",
          "id",
          "thumbnailUrl",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "course": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CourseModel"
              }
            ]
          },
          "chapter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChapterModel"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "StudySessionBlockModel": {
        "required": [
          "atomId",
          "content",
          "id",
          "mode",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StudyBlockType"
              }
            ]
          },
          "mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StudyBlockMode"
              }
            ]
          },
          "content": { },
          "atomId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "StudySessionCreateModel": {
        "type": "object",
        "properties": {
          "lessonId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "courseId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StudyBlockMode"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StudySessionModel": {
        "required": [
          "id",
          "studyBlocks"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "studyBlocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StudySessionBlockModel"
            }
          }
        },
        "additionalProperties": false
      },
      "StudySessionResultCreateModel": {
        "required": [
          "atomProgress"
        ],
        "type": "object",
        "properties": {
          "atomProgress": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AtomProgressCreateModel"
            }
          }
        },
        "additionalProperties": false
      },
      "SubscriptionModel": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "periodStart": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionStatus"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "SubscriptionStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "Trialing",
          "Incomplete",
          "IncompleteExpired",
          "Active",
          "PastDue",
          "Canceled",
          "ScheduledToCancel",
          "Unpaid",
          "Paused"
        ]
      },
      "ThemeMode": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "System",
          "Light",
          "Dark"
        ]
      },
      "ThemeModeNullableOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ThemeMode"
          }
        ],
        "nullable": true
      },
      "UpdateAvatarPatchModel": {
        "type": "object",
        "properties": {
          "skinColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarSkinColorNullableOptional"
              }
            ]
          },
          "eyes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyesNullableOptional"
              }
            ]
          },
          "eyeColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarEyeColorNullableOptional"
              }
            ]
          },
          "expression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarExpressionNullableOptional"
              }
            ]
          },
          "hair": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHairNullableOptional"
              }
            ]
          },
          "hairColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHairColorNullableOptional"
              }
            ]
          },
          "accessories": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarAccessoriesNullableOptional"
              }
            ]
          },
          "glassesColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarGlassesColorNullableOptional"
              }
            ]
          },
          "beard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeardNullableOptional"
              }
            ]
          },
          "beardColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBeardColorNullableOptional"
              }
            ]
          },
          "headwear": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarHeadwearNullableOptional"
              }
            ]
          },
          "clothing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarClothingNullableOptional"
              }
            ]
          },
          "backgroundColor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AvatarBackgroundColorNullableOptional"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "UpdateAvatarPatchModelOptional": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateAvatarPatchModel"
          }
        ],
        "nullable": true
      },
      "UserAchievementModel": {
        "required": [
          "achievementId",
          "achievementMaxLevel",
          "currentLevel",
          "currentValue",
          "type"
        ],
        "type": "object",
        "properties": {
          "userAchievementId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "achievementId": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AchievementType"
              }
            ]
          },
          "achievementMaxLevel": {
            "type": "integer",
            "format": "int32"
          },
          "currentLevel": {
            "type": "integer",
            "format": "int32"
          },
          "currentValue": {
            "type": "integer",
            "format": "int32"
          },
          "achievedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "achievedGoal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "nextGoal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserLeaderboardModel": {
        "required": [
          "currentLeague",
          "timeLeft",
          "users",
          "zones"
        ],
        "type": "object",
        "properties": {
          "currentLeague": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeagueType"
              }
            ]
          },
          "timeLeft": {
            "type": "string"
          },
          "zones": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LeaderboardZonesModel"
              }
            ]
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LeaderboardEntryModel"
            }
          }
        },
        "additionalProperties": false
      },
      "UserOwnedShopItemModel": {
        "required": [
          "id",
          "image",
          "purchasedAt",
          "shopItemId",
          "shopItemName",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "shopItemId": {
            "type": "integer",
            "format": "int32"
          },
          "shopItemName": {
            "type": "string"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopItemType"
              }
            ]
          },
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ShopItemImageModel"
              }
            ]
          },
          "purchasedAt": {
            "type": "string",
            "format": "date-time"
          },
          "consumedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserRole": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32",
        "x-enum-varnames": [
          "User",
          "PremiumUser",
          "Admin"
        ]
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Enter your JWT token",
        "scheme": "Bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "auth"
    },
    {
      "name": "certificates"
    },
    {
      "name": "courses"
    },
    {
      "name": "lesson"
    },
    {
      "name": "products"
    },
    {
      "name": "reports"
    },
    {
      "name": "shop"
    },
    {
      "name": "users"
    },
    {
      "name": "webhooks"
    }
  ]
}