Compare commits
2 commits
b3ec969f99
...
73cef306c9
| Author | SHA1 | Date | |
|---|---|---|---|
| 73cef306c9 | |||
| 158afb90d4 |
3 changed files with 96 additions and 2 deletions
|
|
@ -1,6 +1,6 @@
|
|||
[project]
|
||||
name = "yandexapimanager"
|
||||
version = "0.1.5"
|
||||
version = "0.1.6"
|
||||
description = ""
|
||||
authors = [
|
||||
{name = "Evgeny (Krymmy) Momotov",email = "evgeny.momotov@gmail.com"}
|
||||
|
|
|
|||
|
|
@ -263,3 +263,54 @@ class YandexManagerClient:
|
|||
if not response:
|
||||
return None
|
||||
return YandexFleetInspectionCheeks(**response)
|
||||
|
||||
|
||||
async def _reports_rout(self, method: str, url: str, **kwargs) -> dict | list | None:
|
||||
response = await self._request(method, f'/reports/{url.strip("/")}', **kwargs)
|
||||
if not response:
|
||||
return None
|
||||
return response
|
||||
|
||||
|
||||
async def create_supply_hours_condition_report(self, report: SupplyHoursConditionReportIn) -> SupplyHoursConditionReport | None:
|
||||
response = await self._reports_rout('POST', 'supply_hours_conditions/', json=report.model_dump())
|
||||
if not response:
|
||||
return None
|
||||
return SupplyHoursConditionReport(**response)
|
||||
|
||||
async def get_yandex_fleet_check_reports(self, **params) -> list[YandexFleetCheckReport] | None:
|
||||
response = await self._reports_rout('GET', 'yandex_fleet_checks/', params=params)
|
||||
if not response:
|
||||
return []
|
||||
return [YandexFleetCheckReport(**report) for report in response]
|
||||
|
||||
|
||||
async def create_yandex_fleet_check_report(self, report: YandexFleetCheckReportIn) -> YandexFleetCheckReport | None:
|
||||
response = await self._reports_rout('POST', 'yandex_fleet_checks/', json=report.model_dump())
|
||||
if not response:
|
||||
return None
|
||||
return YandexFleetCheckReport(**response)
|
||||
|
||||
async def get_group_check_reports(self, **params) -> list[GroupCheckReport] | None:
|
||||
response = await self._reports_rout('GET', 'group_checks/', params=params)
|
||||
if not response:
|
||||
return []
|
||||
return [GroupCheckReport(**report) for report in response]
|
||||
|
||||
async def create_group_check_report(self, report: GroupCheckReportIn) -> GroupCheckReport | None:
|
||||
response = await self._reports_rout('POST', 'group_checks/', json=report.model_dump())
|
||||
if not response:
|
||||
return None
|
||||
return GroupCheckReport(**response)
|
||||
|
||||
async def get_driver_check_reports(self, **params) -> list[DriverCheckReport] | None:
|
||||
response = await self._reports_rout('GET', 'driver_checks/', params=params)
|
||||
if not response:
|
||||
return []
|
||||
return [DriverCheckReport(**report) for report in response]
|
||||
|
||||
async def create_driver_check_report(self, report: DriverCheckReportIn) -> DriverCheckReport | None:
|
||||
response = await self._reports_rout('POST', 'driver_checks/', json=report.model_dump())
|
||||
if not response:
|
||||
return None
|
||||
return DriverCheckReport(**response)
|
||||
|
|
|
|||
|
|
@ -283,4 +283,47 @@ class GroupInspectionCheek(BaseInspectionsCheckModel, BasicModel):
|
|||
|
||||
|
||||
class DriverInspectionCheek(BaseInspectionsCheckModel, BasicModel):
|
||||
drive_inspection: DriverInspection = Field(description="Инспекция водителя")
|
||||
drive_inspection: DriverInspection = Field(description="Инспекция водителя")
|
||||
|
||||
|
||||
class SupplyHoursConditionReport(UUIDModel, BasicModel):
|
||||
supply_hours_condition: Optional[SupplyHoursCondition] = Field(description="Условие по часам поставки", default=None)
|
||||
driver: Optional[Driver] = Field(description="Водитель", default=None)
|
||||
supply_duration: int = Field(description="Время работы в часах", default=0)
|
||||
is_fulfilled: bool = Field(description="Соблюдение условия", default=False)
|
||||
|
||||
|
||||
class SupplyHoursConditionReportIn(BaseModel):
|
||||
supply_hours_condition_id: Optional[int] = Field(description="Условие по часам поставки", default=None)
|
||||
driver_id: Optional[int] = Field(description="Водитель", default=None)
|
||||
supply_duration: Optional[int] = Field(description="Время работы в часах", default=0)
|
||||
is_fulfilled: Optional[bool] = Field(description="Соблюдение условия", default=False)
|
||||
|
||||
|
||||
class CheckReport(UUIDModel, BasicModel):
|
||||
owner: Optional[User] = Field(description="Владелец", default=None)
|
||||
supply_hours_condition_report: Optional[SupplyHoursConditionReportIn] = Field(description="Водитель", default=None)
|
||||
action_do: Optional[Action] = Field(description="Действие", default=None)
|
||||
|
||||
class YandexFleetCheckReport(CheckReport):
|
||||
yandex_fleet_check: Optional[YandexFleetInspectionCheeks] = Field(description="Инспекция флота", default=None)
|
||||
|
||||
class GroupCheckReport(CheckReport):
|
||||
group_check: Optional[GroupInspectionCheek] = Field(description="Инспекция группы", default=None)
|
||||
|
||||
class DriverCheckReport(CheckReport):
|
||||
driver_check: Optional[DriverInspectionCheek] = Field(description="Инспекция водителя", default=None)
|
||||
|
||||
class CheckReportIn(BaseModel):
|
||||
owner_id: Optional[int] = Field(description="Владелец", default=None)
|
||||
supply_hours_condition_report_id: Optional[int] = Field(description="Водитель", default=None)
|
||||
action_do_id: Optional[int] = Field(description="Действие", default=None)
|
||||
|
||||
class YandexFleetCheckReportIn(CheckReportIn):
|
||||
yandex_fleet_check_id: Optional[int] = Field(description="Инспекция флота", default=None)
|
||||
|
||||
class GroupCheckReportIn(CheckReportIn):
|
||||
group_check_id: Optional[int] = Field(description="Инспекция группы", default=None)
|
||||
|
||||
class DriverCheckReportIn(CheckReportIn):
|
||||
driver_check_id: Optional[int] = Field(description="Инспекция водителя", default=None)
|
||||
Loading…
Add table
Reference in a new issue