# Sports Data Authorization

"YVR GO" is a pre-installed application for the YVR system, which is used to collect exercise data generated by the user when using the YVR device, including exercise duration, exercise consumption, application preference, etc. In addition, users can create and manage exercise plans via "YVR GO". The Sports Data Authorization Service provides an API to obtain user sports data from "YVR GO", and sports apps can use the data to analyze the user's exercise, thus providing a better customized experience for the user.
    <br />
    


## Basic Concept

| **Concept** | **Description** |
| ------- | -------- |
| YVR GO | The YVR system has a pre-installed app to help users manage their exercise plan. |
| Exercise Plan | Exercise plans set by users in the Exercise Center, including exercise duration, calorie goals, and days of exercise per week. |


## Function

| **Function** | **Description** | **Use Case** |
| -------- | ------- | ------------ |
| Read user basic information and exercise plan | Height, weight, age and other information | Read user's height and weight within the app |
| Read user's calories over a certain period of time | 1. Input parameters: start time, end time 2. Output parameters: calories, exercise duration | 1. App queries the user's daily calorie consumption and exercise duration in the current app 2. App queries the user's recent historical data on calories and exercise duration in the current app |


## Retrieve Basic Information and Exercise Plan

Call `GetUserInfo` to get the user's basic information and exercise program information, including:
- Gender: Male=1, Female=2
- Birthday: Year of Birth
- Stature: Natural height in entimeters
- Weight: Weight in kilograms
- PlanDurationInSeconds: Length of planned workout in seconds per day
- PlanCalorie: Calories you plan to burn each day
- DaysPerWeek: Number of days you plan to exercise per week


## Retrieve Today's Excercise Data

Call `GetSummary` to get the exercise data generated in any time period in the last 24 hours (the start time of the query should not be more than 24 hours from the current time), including the actual exercise duration and actual calories burned.

| **Parameter** | **Description** |
| ------------- | --------------- |
| beginTime | Begin time of the period |
| endTime | End time of the period |

### Returns

| **Name** | **Type** | **Description** | 
| -------- | -------- | --------------- |
| DurationInSeconds | int | The sport duration (in seconds). |
| Calorie | double | The actual calorie burnt (in kilo calorie). |


## Retrieve Daily Excercise Data

Call `GetDailySummary` to query the daily exercise data generated by the user for any period in the last 90 days (the query start time must not be earlier than 90 days ago), including the actual exercise time, planned exercise time, planned calorie consumption and actual calorie consumption.

| **Parameter** | **Description** |
| ------------- | --------------- |
| beginTime | Begin time of the period |
| endTime | End time of the period |


### Returns

The `SportDailySummaryList` consists of `SportDailySummary`. If you set the time period from 2022/08/16 to 2022/08/18, data for 08/16, 08/17, and 08/18 will be returned.

| **Name** | **Type** | **Description** | 
| -------- | -------- | --------------- |
| Date | DateTime | The date when the summary was generated. |
| DurationInSeconds | int | The sport duration (in seconds). |
| PlanDurationInMinutes | int | The planned sport duration (in seconds). |
| Calorie | double | The actual calorie burnt (in kilo calorie). |
| PlanCalorie | double | The planned calorie to burn. |