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(int | None) -
is_participated(bool | None) -
in_progress(bool | None)
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(int | None) -
challenge_sub_category_id(int | None) -
challenge_name(str | None) -
years(list[Year])
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(int | None) -
challenge_sub_category_id(int | None) -
challenge_name(str | None) -
years(list[Year])
challenge_sub_category_id
pydantic-field
¶
challenge_sub_category_id = None
Sub-category ID for the challenge.
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(EquipmentType | None) -
equipment_name(str | None) -
years(list[Year])
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(list[Program]) -
challenges(list[Challenge]) -
benchmarks(list[Benchmark])