Skip to content

Challenge Content

Year pydantic-model

Bases: OtfItemBase

A year entry indicating member participation in a challenge or benchmark.

Show JSON schema:
{
  "description": "A year entry indicating member participation in a challenge or benchmark.",
  "properties": {
    "Year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The calendar year.",
      "title": "Year"
    },
    "IsParticipated": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the member participated this year.",
      "title": "Isparticipated"
    },
    "InProgress": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the challenge is currently in progress.",
      "title": "Inprogress"
    }
  },
  "title": "Year",
  "type": "object"
}

Fields:

year pydantic-field

year = None

The calendar year.

is_participated pydantic-field

is_participated = None

Whether the member participated this year.

in_progress pydantic-field

in_progress = None

Whether the challenge is currently in progress.

Program pydantic-model

Bases: OtfItemBase

A program represents multi-day/week challenges that members can participate in.

NOTE: The category/sub-category IDs appear to match the ChallengeType enums in the OTF app, but are kept as int rather than enum in case older data or other users' data doesn't match.

Show JSON schema:
{
  "$defs": {
    "Year": {
      "description": "A year entry indicating member participation in a challenge or benchmark.",
      "properties": {
        "Year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The calendar year.",
          "title": "Year"
        },
        "IsParticipated": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the member participated this year.",
          "title": "Isparticipated"
        },
        "InProgress": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the challenge is currently in progress.",
          "title": "Inprogress"
        }
      },
      "title": "Year",
      "type": "object"
    }
  },
  "description": "A program represents multi-day/week challenges that members can participate in.\n\nNOTE: The category/sub-category IDs appear to match the ChallengeType enums in the OTF app,\nbut are kept as int rather than enum in case older data or other users' data doesn't match.",
  "properties": {
    "ChallengeCategoryId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Category ID for the challenge program.",
      "title": "Challengecategoryid"
    },
    "ChallengeSubCategoryId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sub-category ID for the challenge program.",
      "title": "Challengesubcategoryid"
    },
    "ChallengeName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Display name of the challenge program.",
      "title": "Challengename"
    },
    "Years": {
      "description": "Years the member has participated.",
      "items": {
        "$ref": "#/$defs/Year"
      },
      "title": "Years",
      "type": "array"
    }
  },
  "title": "Program",
  "type": "object"
}

Fields:

challenge_category_id pydantic-field

challenge_category_id = None

Category ID for the challenge program.

challenge_sub_category_id pydantic-field

challenge_sub_category_id = None

Sub-category ID for the challenge program.

challenge_name pydantic-field

challenge_name = None

Display name of the challenge program.

years pydantic-field

years

Years the member has participated.

Challenge pydantic-model

Bases: OtfItemBase

A challenge represents a single day or event that members can participate in.

NOTE: The challenge category/subcategory ids here do not seem to be related to the ChallengeType enums or SubCategory enums from the OTF app.

Show JSON schema:
{
  "$defs": {
    "Year": {
      "description": "A year entry indicating member participation in a challenge or benchmark.",
      "properties": {
        "Year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The calendar year.",
          "title": "Year"
        },
        "IsParticipated": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the member participated this year.",
          "title": "Isparticipated"
        },
        "InProgress": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the challenge is currently in progress.",
          "title": "Inprogress"
        }
      },
      "title": "Year",
      "type": "object"
    }
  },
  "description": "A challenge represents a single day or event that members can participate in.\n\nNOTE: The challenge category/subcategory ids here do not seem to be related to the\nChallengeType enums or SubCategory enums from the OTF app.",
  "properties": {
    "ChallengeCategoryId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Category ID for the challenge.",
      "title": "Challengecategoryid"
    },
    "ChallengeSubCategoryId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sub-category ID for the challenge.",
      "title": "Challengesubcategoryid"
    },
    "ChallengeName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Display name of the challenge.",
      "title": "Challengename"
    },
    "Years": {
      "description": "Years the member has participated.",
      "items": {
        "$ref": "#/$defs/Year"
      },
      "title": "Years",
      "type": "array"
    }
  },
  "title": "Challenge",
  "type": "object"
}

Fields:

challenge_category_id pydantic-field

challenge_category_id = None

Category ID for the challenge.

challenge_sub_category_id pydantic-field

challenge_sub_category_id = None

Sub-category ID for the challenge.

challenge_name pydantic-field

challenge_name = None

Display name of the challenge.

years pydantic-field

years

Years the member has participated.

Benchmark pydantic-model

Bases: OtfItemBase

A benchmark represents a specific workout that members can participate in.

Show JSON schema:
{
  "$defs": {
    "EquipmentType": {
      "description": "Enum representing the type of equipment used in workouts.",
      "enum": [
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "title": "EquipmentType",
      "type": "integer"
    },
    "Year": {
      "description": "A year entry indicating member participation in a challenge or benchmark.",
      "properties": {
        "Year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The calendar year.",
          "title": "Year"
        },
        "IsParticipated": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the member participated this year.",
          "title": "Isparticipated"
        },
        "InProgress": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the challenge is currently in progress.",
          "title": "Inprogress"
        }
      },
      "title": "Year",
      "type": "object"
    }
  },
  "description": "A benchmark represents a specific workout that members can participate in.",
  "properties": {
    "EquipmentId": {
      "anyOf": [
        {
          "$ref": "#/$defs/EquipmentType"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Type of equipment used for the benchmark."
    },
    "EquipmentName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Display name of the equipment.",
      "title": "Equipmentname"
    },
    "Years": {
      "description": "Years the member has participated.",
      "items": {
        "$ref": "#/$defs/Year"
      },
      "title": "Years",
      "type": "array"
    }
  },
  "title": "Benchmark",
  "type": "object"
}

Fields:

equipment_id pydantic-field

equipment_id = None

Type of equipment used for the benchmark.

equipment_name pydantic-field

equipment_name = None

Display name of the equipment.

years pydantic-field

years

Years the member has participated.

ChallengeTracker pydantic-model

Bases: OtfItemBase

Top-level container for all challenge, program, and benchmark participation data.

Show JSON schema:
{
  "$defs": {
    "Benchmark": {
      "description": "A benchmark represents a specific workout that members can participate in.",
      "properties": {
        "EquipmentId": {
          "anyOf": [
            {
              "$ref": "#/$defs/EquipmentType"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Type of equipment used for the benchmark."
        },
        "EquipmentName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Display name of the equipment.",
          "title": "Equipmentname"
        },
        "Years": {
          "description": "Years the member has participated.",
          "items": {
            "$ref": "#/$defs/Year"
          },
          "title": "Years",
          "type": "array"
        }
      },
      "title": "Benchmark",
      "type": "object"
    },
    "Challenge": {
      "description": "A challenge represents a single day or event that members can participate in.\n\nNOTE: The challenge category/subcategory ids here do not seem to be related to the\nChallengeType enums or SubCategory enums from the OTF app.",
      "properties": {
        "ChallengeCategoryId": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Category ID for the challenge.",
          "title": "Challengecategoryid"
        },
        "ChallengeSubCategoryId": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sub-category ID for the challenge.",
          "title": "Challengesubcategoryid"
        },
        "ChallengeName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Display name of the challenge.",
          "title": "Challengename"
        },
        "Years": {
          "description": "Years the member has participated.",
          "items": {
            "$ref": "#/$defs/Year"
          },
          "title": "Years",
          "type": "array"
        }
      },
      "title": "Challenge",
      "type": "object"
    },
    "EquipmentType": {
      "description": "Enum representing the type of equipment used in workouts.",
      "enum": [
        2,
        3,
        4,
        5,
        6,
        7
      ],
      "title": "EquipmentType",
      "type": "integer"
    },
    "Program": {
      "description": "A program represents multi-day/week challenges that members can participate in.\n\nNOTE: The category/sub-category IDs appear to match the ChallengeType enums in the OTF app,\nbut are kept as int rather than enum in case older data or other users' data doesn't match.",
      "properties": {
        "ChallengeCategoryId": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Category ID for the challenge program.",
          "title": "Challengecategoryid"
        },
        "ChallengeSubCategoryId": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sub-category ID for the challenge program.",
          "title": "Challengesubcategoryid"
        },
        "ChallengeName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Display name of the challenge program.",
          "title": "Challengename"
        },
        "Years": {
          "description": "Years the member has participated.",
          "items": {
            "$ref": "#/$defs/Year"
          },
          "title": "Years",
          "type": "array"
        }
      },
      "title": "Program",
      "type": "object"
    },
    "Year": {
      "description": "A year entry indicating member participation in a challenge or benchmark.",
      "properties": {
        "Year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The calendar year.",
          "title": "Year"
        },
        "IsParticipated": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the member participated this year.",
          "title": "Isparticipated"
        },
        "InProgress": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the challenge is currently in progress.",
          "title": "Inprogress"
        }
      },
      "title": "Year",
      "type": "object"
    }
  },
  "description": "Top-level container for all challenge, program, and benchmark participation data.",
  "properties": {
    "Programs": {
      "description": "Multi-day/week challenge programs.",
      "items": {
        "$ref": "#/$defs/Program"
      },
      "title": "Programs",
      "type": "array"
    },
    "Challenges": {
      "description": "Single-day event challenges.",
      "items": {
        "$ref": "#/$defs/Challenge"
      },
      "title": "Challenges",
      "type": "array"
    },
    "Benchmarks": {
      "description": "Benchmark workout records.",
      "items": {
        "$ref": "#/$defs/Benchmark"
      },
      "title": "Benchmarks",
      "type": "array"
    }
  },
  "title": "ChallengeTracker",
  "type": "object"
}

Fields:

programs pydantic-field

programs

Multi-day/week challenge programs.

challenges pydantic-field

challenges

Single-day event challenges.

benchmarks pydantic-field

benchmarks

Benchmark workout records.