Skip to content

Instantly share code, notes, and snippets.

@zshanabek
Last active April 17, 2024 18:58
Show Gist options
  • Save zshanabek/3131020224b3632ab8cfdd1b1d164331 to your computer and use it in GitHub Desktop.
Save zshanabek/3131020224b3632ab8cfdd1b1d164331 to your computer and use it in GitHub Desktop.
### Задание 1
Получить данные о текущем потреблении воды, электричества и газа.
GET /current_device_data
{
"water": {
"current": 4526,
"average_consumption": 5000, # захардкоженное значение
"percent": 90,
"price": 1581,
"currency: "KZT",
},
"electricity": {
"current": 1231,
"average_consumption": 5000,
"percent": 90,
"price": 1581,
"currency: "KZT",
},
"gas": {
"current": 1231,
"average_consumption": 5000,
"percent": 90,
"price": 1581,
"currency: "KZT",
}
}
Write python Pydantic code for this API.
```python
from pydantic import BaseModel
class DeviceDataElement(BaseModel):
current: int
average_consumption: int
percent: int
price: int
currency: str
```
### Задание 2
ЗА НЕДЕЛЮ
График расходов комуналки за неделю. В итоге должно быть 7 элементов.
Важно учесть, что для всех кейсов будет только один эндпоинт device_data_bar_chart, но в зависимости от параметров start_date и end_date, будет возвращаться разное количество элементов в массиве items. Также, если разница между start_date и end_date больше 1 месяца, то показывать среднее значение за месяц и добавить поле month.
GET /device_data_bar_chart?start_date=2021-09-01&end_date=2021-09-08
{
"recommended_value": 5000,
"items":[
{
"value": 1000,
"date": "2021-09-01"
},
{
"value": 1000,
"date": "2021-09-02"
},
...
{
"value": 1000,
"date": "2021-09-08"
}
]
}
Write python Pydantic code for this API.
```python
from pydantic import BaseModel
class DeviceDataElement(BaseModel):
value: int
date: str
class DeviceData(BaseModel):
data: List[DeviceDataElement]
```
### Задание 3
ЗА МЕСЯЦА
GET /device_data_bar_chart?start_date=2021-09-01&end_date=2021-09-30
График расходов комуналки за месяц. В итоге должно быть 30 элементов.
{
"recommended_value": 5000,
"items":[
{
"value": 1000,
"date": "2021-09-01"
},
{
"value": 1000,
"date": "2021-09-02"
},
...
{
"value": 1000,
"date": "2021-09-30"
}
]
}
### Задание 4
ЗА ГОД
График расходов комуналки за год. Если разница между start_date и end_date больше 1 месяца, то показывать среднее значение за месяц и добавить поле month.
GET /device_data_bar_chart?start_date=2021-01-01&end_date=2021-12-31
{
"recommended_value": 5000,
"items":[
{
"value": 1000,
"date": "2021-01-01",
"month": "Январь"
},
{
"value": 1000,
"date": "2021-02-01",
"month": "Февраль"
},
...
{
"value": 1000,
"date": "2021-12-01",
"month": "Декабрь"
}
]
}
### Задание 5
# ЗА ПЕРИОД
График расходов комуналки за определенный период. Периоды могут быть разные. Если разница между start_date и end_date больше 1 месяца, то показывать среднее значение за месяц.
GET /device_data_bar_chart?start_date=2021-01-01&end_date=2021-04-31
{
"recommended_value": 5000,
"items":[
{
"value": 1000,
"date": "2021-01-01"
},
{
"value": 1000,
"date": "2021-01-02"
},
...
{
"value": 1000,
"date": "2021-04-31"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment