{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/justgains-com/json-schema/justgains-com-user-schema.json",
  "title": "User",
  "x-generated": "2026-11-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/justgains-com-openapi.json#/components/schemas/User",
  "type": "object",
  "properties": {
    "Id": {
      "type": "string",
      "format": "uuid"
    },
    "UserName": {
      "type": [
        "string",
        "null"
      ]
    },
    "NormalizedUserName": {
      "type": [
        "string",
        "null"
      ]
    },
    "Email": {
      "type": [
        "string",
        "null"
      ]
    },
    "NormalizedEmail": {
      "type": [
        "string",
        "null"
      ]
    },
    "EmailConfirmed": {
      "type": "boolean"
    },
    "PasswordHash": {
      "type": [
        "string",
        "null"
      ]
    },
    "SecurityStamp": {
      "type": [
        "string",
        "null"
      ]
    },
    "ConcurrencyStamp": {
      "type": [
        "string",
        "null"
      ]
    },
    "PhoneNumber": {
      "type": [
        "string",
        "null"
      ]
    },
    "PhoneNumberConfirmed": {
      "type": "boolean"
    },
    "TwoFactorEnabled": {
      "type": "boolean"
    },
    "LockoutEnd": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "LockoutEnabled": {
      "type": "boolean"
    },
    "AccessFailedCount": {
      "type": "integer",
      "format": "int32"
    },
    "FirstName": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "LastName": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "OAuthProvider": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "ConfirmationSentAt": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "RecoverySentAt": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "EmailChangeTokenCurrent": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "EmailChangeTokenNew": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "LastSignInAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "PhoneConfirmedAt": {
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "RefreshToken": {
      "maxLength": 625,
      "type": [
        "string",
        "null"
      ]
    },
    "Exercises": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/Exercise"
      }
    },
    "ExerciseVideos": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ExerciseVideo"
      }
    },
    "ExerciseThumbnails": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ExerciseThumbnail"
      }
    },
    "ExerciseInstructions": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ExerciseInstruction"
      }
    },
    "UserRoleAssignments": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/UserRoleAssignment"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "Equipment": {
      "required": [
        "EquipmentCode"
      ],
      "type": "object",
      "properties": {
        "EquipmentCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
        "EquipmentThumbnail": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "MediaAsset": {
          "$ref": "#/$defs/MediaAsset"
        },
        "ExerciseEquipments": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseEquipment"
          }
        },
        "EquipmentTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/EquipmentTranslation"
          }
        },
        "EquipmentEquipmentGroups": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/EquipmentEquipmentGroup"
          }
        }
      },
      "additionalProperties": false
    },
    "EquipmentEquipmentGroup": {
      "required": [
        "EquipmentCode",
        "EquipmentGroupCode"
      ],
      "type": "object",
      "properties": {
        "EquipmentGroupCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
        "EquipmentGroup": {
          "$ref": "#/$defs/EquipmentGroup"
        },
        "EquipmentCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "Equipment": {
          "$ref": "#/$defs/Equipment"
        }
      },
      "additionalProperties": false
    },
    "EquipmentGroup": {
      "required": [
        "EquipmentGroupCode"
      ],
      "type": "object",
      "properties": {
        "EquipmentGroupCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "EquipmentGroupThumbnail": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "MediaAsset": {
          "$ref": "#/$defs/MediaAsset"
        },
        "EquipmentGroupParent": {
          "type": [
            "string",
            "null"
          ]
        },
        "EquipmentGroupType": {
          "type": [
            "string",
            "null"
          ]
        },
        "SortOrder": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "EquipmentGroupTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/EquipmentGroupTranslation"
          }
        },
        "EquipmentEquipmentGroups": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/EquipmentEquipmentGroup"
          }
        }
      },
      "additionalProperties": false
    },
    "EquipmentGroupTranslation": {
      "required": [
        "EquipmentGroupCode",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "EquipmentGroupCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "EquipmentGroup": {
          "$ref": "#/$defs/EquipmentGroup"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "EquipmentGroupName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "EquipmentTranslation": {
      "required": [
        "EquipmentCode",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "EquipmentCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Equipment": {
          "$ref": "#/$defs/Equipment"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "EquipmentName": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "Exercise": {
      "required": [
        "ExerciseCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "ExerciseCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "UserId": {
          "type": "string",
          "format": "uuid"
        },
        "User": {
          "$ref": "#/$defs/User"
        },
        "ExerciseTypeCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseType": {
          "$ref": "#/$defs/ExerciseType"
        },
        "PublishedStatus": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Difficulty": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "TechnicalComplexity": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "MetabolicEquivalent": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "IsPlateloaded": {
          "type": "boolean"
        },
        "IsCardio": {
          "type": "boolean"
        },
        "OlympicRating": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "PowerLifterRating": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "CalisthenicRating": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "PopularityRating": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "MuscleStimulus": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "IsPlyometric": {
          "type": "boolean"
        },
        "IsIsometric": {
          "type": "boolean"
        },
        "IsCalisthenic": {
          "type": "boolean"
        },
        "IsWeighted": {
          "type": "boolean"
        },
        "IsUnilateral": {
          "type": "boolean"
        },
        "IsBodyweight": {
          "type": "boolean"
        },
        "AdminNotes": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseTranslation"
          }
        },
        "ExerciseVideos": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseVideo"
          }
        },
        "ExerciseThumbnails": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseThumbnail"
          }
        },
        "ExerciseInstructions": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseInstruction"
          }
        },
        "ExerciseMuscles": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseMuscle"
          }
        },
        "ExerciseEquipments": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseEquipment"
          }
        },
        "ExerciseExerciseCategories": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseExerciseCategory"
          }
        }
      },
      "additionalProperties": false
    },
    "ExerciseCategory": {
      "required": [
        "ExerciseCategoryCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "ExerciseCategoryCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseCategoryTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseCategoryTranslation"
          }
        },
        "ExerciseExerciseCategories": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseExerciseCategory"
          }
        }
      },
      "additionalProperties": false
    },
    "ExerciseCategoryTranslation": {
      "required": [
        "ExerciseCategoryCode",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "ExerciseCategoryCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseCategory": {
          "$ref": "#/$defs/ExerciseCategory"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseCategoryName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExerciseEquipment": {
      "required": [
        "EquipmentCode",
        "ExerciseCode",
        "IsRequired"
      ],
      "type": "object",
      "properties": {
        "ExerciseCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "EquipmentCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Equipment": {
          "$ref": "#/$defs/Equipment"
        },
        "EquipmentGroup": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "IsRequired": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ExerciseExerciseCategory": {
      "type": "object",
      "properties": {
        "ExerciseCategoryCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseCategory": {
          "$ref": "#/$defs/ExerciseCategory"
        },
        "ExerciseCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        }
      },
      "additionalProperties": false
    },
    "ExerciseInstruction": {
      "required": [
        "ExerciseCode",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "ExerciseCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "UserId": {
          "type": "string",
          "format": "uuid"
        },
        "User": {
          "$ref": "#/$defs/User"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "InstructionJSON": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExerciseMetric": {
      "required": [
        "ExerciseMetricCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "ExerciseMetricCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": "string"
        },
        "ExerciseMetricTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseMetricTranslation"
          }
        },
        "ExerciseTypeExerciseMetrics": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseTypeExerciseMetric"
          }
        }
      },
      "additionalProperties": false
    },
    "ExerciseMetricTranslation": {
      "required": [
        "ExerciseMetricCode",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "ExerciseMetricCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseMetric": {
          "$ref": "#/$defs/ExerciseMetric"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseMetricName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "MeasurementData": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExerciseMuscle": {
      "required": [
        "ExerciseCode",
        "IsPrimary",
        "MuscleCode",
        "TargetPercentage"
      ],
      "type": "object",
      "properties": {
        "ExerciseCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "MuscleCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Muscle": {
          "$ref": "#/$defs/Muscle"
        },
        "IsPrimary": {
          "type": "boolean"
        },
        "TargetPercentage": {
          "type": "number",
          "format": "double"
        }
      },
      "additionalProperties": false
    },
    "ExerciseThumbnail": {
      "type": "object",
      "properties": {
        "ExerciseCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "UserId": {
          "type": "string",
          "format": "uuid"
        },
        "User": {
          "$ref": "#/$defs/User"
        },
        "MediaId": {
          "type": "string",
          "format": "uuid"
        },
        "MediaAsset": {
          "$ref": "#/$defs/MediaAsset"
        }
      },
      "additionalProperties": false
    },
    "ExerciseTranslation": {
      "required": [
        "ExerciseCode",
        "ExerciseTranslationId",
        "IsPrimary",
        "LocaleCode"
      ],
      "type": "object",
      "properties": {
        "ExerciseTranslationId": {
          "type": "integer",
          "format": "int32"
        },
        "ExerciseCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "LocaleCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "IsPrimary": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ExerciseType": {
      "required": [
        "ExerciseTypeCode"
      ],
      "type": "object",
      "properties": {
        "ExerciseTypeCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseTypeExerciseMetrics": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseTypeExerciseMetric"
          }
        },
        "ExerciseTypeTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseTypeTranslation"
          }
        },
        "Exercises": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Exercise"
          }
        }
      },
      "additionalProperties": false
    },
    "ExerciseTypeExerciseMetric": {
      "required": [
        "ExerciseMetricCode",
        "ExerciseTypeCode"
      ],
      "type": "object",
      "properties": {
        "ExerciseTypeCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseType": {
          "$ref": "#/$defs/ExerciseType"
        },
        "ExerciseMetricCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ExerciseMetric": {
          "$ref": "#/$defs/ExerciseMetric"
        }
      },
      "additionalProperties": false
    },
    "ExerciseTypeTranslation": {
      "required": [
        "ExerciseTypeName"
      ],
      "type": "object",
      "properties": {
        "ExerciseTypeCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseType": {
          "$ref": "#/$defs/ExerciseType"
        },
        "LocaleCode": {
          "maxLength": 10,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "ExerciseTypeName": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "ExerciseVideo": {
      "required": [
        "ExerciseCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "ExerciseCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "Exercise": {
          "$ref": "#/$defs/Exercise"
        },
        "UserId": {
          "type": "string",
          "format": "uuid"
        },
        "User": {
          "$ref": "#/$defs/User"
        },
        "MediaId": {
          "type": "string",
          "format": "uuid"
        },
        "MediaAsset": {
          "$ref": "#/$defs/MediaAsset"
        },
        "SortOrder": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "MediaAsset": {
      "required": [
        "FileName",
        "FilePath"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "MediaId": {
          "type": "string",
          "format": "uuid"
        },
        "MediaType": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "FileName": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "FilePath": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "FileSize": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "FileFormat": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Description": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "Muscle": {
      "required": [
        "MuscleCode"
      ],
      "type": "object",
      "properties": {
        "MuscleCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "MuscleTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/MuscleTranslation"
          }
        },
        "MuscleGroupMuscles": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/MuscleGroupMuscle"
          }
        },
        "ExerciseMuscles": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseMuscle"
          }
        }
      },
      "additionalProperties": false
    },
    "MuscleGroup": {
      "required": [
        "MuscleGroupCode"
      ],
      "type": "object",
      "properties": {
        "CreatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "CreatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "UpdatedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "UpdatedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "DeletedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "DeletedBy": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "MuscleGroupCode": {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "MuscleGroupThumbnailId": {
          "type": [
            "string",
            "null"
          ],
          "format": "uuid"
        },
        "MuscleGroupThumbnail": {
          "$ref": "#/$defs/MediaAsset"
        },
        "MuscleGroupParent": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "SortOrder": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "MuscleGroupType": {
          "$ref": "#/$defs/MuscleGroupType"
        },
        "MuscleGroupTranslations": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/MuscleGroupTranslation"
          }
        },
        "MuscleGroupMuscles": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/MuscleGroupMuscle"
          }
        }
      },
      "additionalProperties": false
    },
    "MuscleGroupMuscle": {
      "required": [
        "MuscleCode",
        "MuscleGroupCode"
      ],
      "type": "object",
      "properties": {
        "MuscleGroupCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "MuscleGroup": {
          "$ref": "#/$defs/MuscleGroup"
        },
        "MuscleCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Muscle": {
          "$ref": "#/$defs/Muscle"
        }
      },
      "additionalProperties": false
    },
    "MuscleGroupTranslation": {
      "required": [
        "LocaleCode",
        "MuscleGroupCode"
      ],
      "type": "object",
      "properties": {
        "MuscleGroupCode": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "MuscleGroup": {
          "$ref": "#/$defs/MuscleGroup"
        },
        "LocaleCode": {
          "maxLength": 10,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "MuscleGroupName": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "MuscleGroupType": {
      "enum": [
        0,
        1,
        2
      ],
      "type": "integer",
      "format": "int32"
    },
    "MuscleTranslation": {
      "required": [
        "LocaleCode",
        "MuscleCode"
      ],
      "type": "object",
      "properties": {
        "MuscleCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "Muscle": {
          "$ref": "#/$defs/Muscle"
        },
        "LocaleCode": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "MuscleName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "User": {
      "type": "object",
      "properties": {
        "Id": {
          "type": "string",
          "format": "uuid"
        },
        "UserName": {
          "type": [
            "string",
            "null"
          ]
        },
        "NormalizedUserName": {
          "type": [
            "string",
            "null"
          ]
        },
        "Email": {
          "type": [
            "string",
            "null"
          ]
        },
        "NormalizedEmail": {
          "type": [
            "string",
            "null"
          ]
        },
        "EmailConfirmed": {
          "type": "boolean"
        },
        "PasswordHash": {
          "type": [
            "string",
            "null"
          ]
        },
        "SecurityStamp": {
          "type": [
            "string",
            "null"
          ]
        },
        "ConcurrencyStamp": {
          "type": [
            "string",
            "null"
          ]
        },
        "PhoneNumber": {
          "type": [
            "string",
            "null"
          ]
        },
        "PhoneNumberConfirmed": {
          "type": "boolean"
        },
        "TwoFactorEnabled": {
          "type": "boolean"
        },
        "LockoutEnd": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "LockoutEnabled": {
          "type": "boolean"
        },
        "AccessFailedCount": {
          "type": "integer",
          "format": "int32"
        },
        "FirstName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "LastName": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "OAuthProvider": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "ConfirmationSentAt": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "RecoverySentAt": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "EmailChangeTokenCurrent": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "EmailChangeTokenNew": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "LastSignInAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "PhoneConfirmedAt": {
          "maxLength": 255,
          "type": [
            "string",
            "null"
          ]
        },
        "RefreshToken": {
          "maxLength": 625,
          "type": [
            "string",
            "null"
          ]
        },
        "Exercises": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/Exercise"
          }
        },
        "ExerciseVideos": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseVideo"
          }
        },
        "ExerciseThumbnails": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseThumbnail"
          }
        },
        "ExerciseInstructions": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/ExerciseInstruction"
          }
        },
        "UserRoleAssignments": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/UserRoleAssignment"
          }
        }
      },
      "additionalProperties": false
    },
    "UserRole": {
      "type": "object",
      "properties": {
        "UserRoleId": {
          "type": "integer",
          "format": "int32"
        },
        "RoleName": {
          "maxLength": 100,
          "minLength": 0,
          "type": [
            "string",
            "null"
          ]
        },
        "Description": {
          "type": [
            "string",
            "null"
          ]
        },
        "UserRoleAssignments": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/UserRoleAssignment"
          }
        }
      },
      "additionalProperties": false
    },
    "UserRoleAssignment": {
      "required": [
        "AssignedAt"
      ],
      "type": "object",
      "properties": {
        "RoleId": {
          "type": "integer",
          "format": "int32"
        },
        "UserRole": {
          "$ref": "#/$defs/UserRole"
        },
        "AssignedAt": {
          "type": "string",
          "format": "date-time"
        },
        "UserId": {
          "type": "string",
          "format": "uuid"
        },
        "User": {
          "$ref": "#/$defs/User"
        },
        "AssignedBy": {
          "type": "string",
          "format": "uuid"
        },
        "AssignedByUser": {
          "$ref": "#/$defs/User"
        }
      },
      "additionalProperties": false
    }
  }
}