WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Variable swaggerSchemasConst

    swaggerSchemas: {
        components: {
            schemas: {
                User: {
                    type: string;
                    properties: {
                        id: { type: string; format: string; example: string };
                        email: { type: string; format: string; example: string };
                        username: { type: string; example: string };
                        firstName: { type: string; example: string };
                        lastName: { type: string; example: string };
                        role: { type: string; enum: string[]; example: string };
                        isActive: { type: string; example: boolean };
                        createdAt: { type: string; format: string; example: string };
                        updatedAt: { type: string; format: string; example: string };
                    };
                };
                AuthTokens: {
                    type: string;
                    properties: {
                        accessToken: { type: string; description: string; example: string };
                        refreshToken: { type: string; description: string; example: string };
                    };
                };
                Course: {
                    type: string;
                    properties: {
                        id: { type: string; format: string; example: string };
                        title: { type: string; example: string };
                        description: { type: string; example: string };
                        language: { type: string; example: string };
                        difficulty: { type: string; enum: string[]; example: string };
                        isPublished: { type: string; example: boolean };
                        createdAt: { type: string; format: string };
                        updatedAt: { type: string; format: string };
                    };
                };
                Lesson: {
                    type: string;
                    properties: {
                        id: { type: string; maxLength: number; example: string };
                        module_id: { type: string; maxLength: number; example: string };
                        name: { type: string; maxLength: number; example: string };
                        description: { type: string; nullable: boolean; example: string };
                        experience_points: { type: string; minimum: number; example: number };
                        order: { type: string; minimum: number; example: number };
                        created_at: { type: string; format: string; example: string };
                        updated_at: { type: string; format: string; example: string };
                        exercises: { type: string; items: { $ref: string } };
                    };
                };
                LessonExercise: {
                    type: string;
                    properties: {
                        lesson_id: { type: string; example: string };
                        exercise_id: { type: string; example: string };
                        order: { type: string; minimum: number; example: number };
                        exercise: { $ref: string };
                    };
                };
                Exercise: {
                    type: string;
                    properties: {
                        id: { type: string; maxLength: number; example: string };
                        exercise_type: { type: string; enum: string[]; example: string };
                        data: { type: string; description: string };
                        created_at: { type: string; format: string; example: string };
                        updated_at: { type: string; format: string; example: string };
                    };
                };
                ApiResponse: {
                    type: string;
                    properties: {
                        success: { type: string; example: boolean };
                        message: { type: string; example: string };
                        timestamp: { type: string; format: string; example: string };
                        data: { type: string; description: string };
                    };
                };
                ErrorResponse: {
                    type: string;
                    properties: {
                        success: { type: string; example: boolean };
                        message: { type: string; example: string };
                        error: { type: string; example: string };
                        timestamp: { type: string; format: string; example: string };
                    };
                };
                ValidationError: {
                    type: string;
                    properties: {
                        success: { type: string; example: boolean };
                        message: { type: string; example: string };
                        errors: {
                            type: string;
                            items: {
                                type: string;
                                properties: {
                                    field: { type: string; example: string };
                                    message: { type: string; example: string };
                                };
                            };
                        };
                        timestamp: { type: string; format: string };
                    };
                };
                Error: {
                    type: string;
                    properties: {
                        success: { type: string; example: boolean };
                        message: { type: string; example: string };
                        timestamp: { type: string; format: string; example: string };
                    };
                };
                PaginationInfo: {
                    type: string;
                    properties: {
                        total: { type: string; example: number };
                        totalPages: { type: string; example: number };
                        page: { type: string; example: number };
                        limit: { type: string; example: number };
                        hasNext: { type: string; example: boolean };
                        hasPrev: { type: string; example: boolean };
                    };
                };
            };
        };
    } = ...

    Swagger/OpenAPI Schema Definitions for WayrApp API

    This module contains reusable schema definitions for the OpenAPI specification. These schemas are used throughout the API documentation to ensure consistency and reduce duplication in the Swagger documentation.

    Type declaration

    • components: {
          schemas: {
              User: {
                  type: string;
                  properties: {
                      id: { type: string; format: string; example: string };
                      email: { type: string; format: string; example: string };
                      username: { type: string; example: string };
                      firstName: { type: string; example: string };
                      lastName: { type: string; example: string };
                      role: { type: string; enum: string[]; example: string };
                      isActive: { type: string; example: boolean };
                      createdAt: { type: string; format: string; example: string };
                      updatedAt: { type: string; format: string; example: string };
                  };
              };
              AuthTokens: {
                  type: string;
                  properties: {
                      accessToken: { type: string; description: string; example: string };
                      refreshToken: { type: string; description: string; example: string };
                  };
              };
              Course: {
                  type: string;
                  properties: {
                      id: { type: string; format: string; example: string };
                      title: { type: string; example: string };
                      description: { type: string; example: string };
                      language: { type: string; example: string };
                      difficulty: { type: string; enum: string[]; example: string };
                      isPublished: { type: string; example: boolean };
                      createdAt: { type: string; format: string };
                      updatedAt: { type: string; format: string };
                  };
              };
              Lesson: {
                  type: string;
                  properties: {
                      id: { type: string; maxLength: number; example: string };
                      module_id: { type: string; maxLength: number; example: string };
                      name: { type: string; maxLength: number; example: string };
                      description: { type: string; nullable: boolean; example: string };
                      experience_points: { type: string; minimum: number; example: number };
                      order: { type: string; minimum: number; example: number };
                      created_at: { type: string; format: string; example: string };
                      updated_at: { type: string; format: string; example: string };
                      exercises: { type: string; items: { $ref: string } };
                  };
              };
              LessonExercise: {
                  type: string;
                  properties: {
                      lesson_id: { type: string; example: string };
                      exercise_id: { type: string; example: string };
                      order: { type: string; minimum: number; example: number };
                      exercise: { $ref: string };
                  };
              };
              Exercise: {
                  type: string;
                  properties: {
                      id: { type: string; maxLength: number; example: string };
                      exercise_type: { type: string; enum: string[]; example: string };
                      data: { type: string; description: string };
                      created_at: { type: string; format: string; example: string };
                      updated_at: { type: string; format: string; example: string };
                  };
              };
              ApiResponse: {
                  type: string;
                  properties: {
                      success: { type: string; example: boolean };
                      message: { type: string; example: string };
                      timestamp: { type: string; format: string; example: string };
                      data: { type: string; description: string };
                  };
              };
              ErrorResponse: {
                  type: string;
                  properties: {
                      success: { type: string; example: boolean };
                      message: { type: string; example: string };
                      error: { type: string; example: string };
                      timestamp: { type: string; format: string; example: string };
                  };
              };
              ValidationError: {
                  type: string;
                  properties: {
                      success: { type: string; example: boolean };
                      message: { type: string; example: string };
                      errors: {
                          type: string;
                          items: {
                              type: string;
                              properties: {
                                  field: { type: string; example: string };
                                  message: { type: string; example: string };
                              };
                          };
                      };
                      timestamp: { type: string; format: string };
                  };
              };
              Error: {
                  type: string;
                  properties: {
                      success: { type: string; example: boolean };
                      message: { type: string; example: string };
                      timestamp: { type: string; format: string; example: string };
                  };
              };
              PaginationInfo: {
                  type: string;
                  properties: {
                      total: { type: string; example: number };
                      totalPages: { type: string; example: number };
                      page: { type: string; example: number };
                      limit: { type: string; example: number };
                      hasNext: { type: string; example: boolean };
                      hasPrev: { type: string; example: boolean };
                  };
              };
          };
      }