Last active
April 17, 2024 18:58
-
-
Save zshanabek/3131020224b3632ab8cfdd1b1d164331 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Задание 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