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]
|
[project]
|
||||||
name = "yandexapimanager"
|
name = "yandexapimanager"
|
||||||
version = "0.1.5"
|
version = "0.1.6"
|
||||||
description = ""
|
description = ""
|
||||||
authors = [
|
authors = [
|
||||||
{name = "Evgeny (Krymmy) Momotov",email = "evgeny.momotov@gmail.com"}
|
{name = "Evgeny (Krymmy) Momotov",email = "evgeny.momotov@gmail.com"}
|
||||||
|
|
|
||||||
|
|
@ -263,3 +263,54 @@ class YandexManagerClient:
|
||||||
if not response:
|
if not response:
|
||||||
return None
|
return None
|
||||||
return YandexFleetInspectionCheeks(**response)
|
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):
|
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