layrz-sdk 4.0.31__tar.gz → 4.0.33__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of layrz-sdk might be problematic. Click here for more details.
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/CHANGELOG.md +9 -0
- {layrz_sdk-4.0.31/layrz_sdk.egg-info → layrz_sdk-4.0.33}/PKG-INFO +1 -1
- layrz_sdk-4.0.33/layrz_sdk/entities/broadcast/payload.py +69 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/operation_payload.py +12 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33/layrz_sdk.egg-info}/PKG-INFO +1 -1
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/pyproject.toml +1 -1
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/uv.lock +1 -1
- layrz_sdk-4.0.31/layrz_sdk/entities/broadcast/payload.py +0 -37
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/.github/workflows/checks.yml +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/.github/workflows/deploy.yml +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/.gitignore +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/.vscode/extensions.json +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/CODE_OF_CONDUCT.md +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/CONTRIBUTING.md +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/LICENSE +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/README.md +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/constants.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/decorators/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/decorators/func_timing.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/action.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/action_geofence_ownership.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/action_kind.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/action_subkind.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/asset.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/asset_constants.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/asset_contact.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/asset_operation_mode.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_entry.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_exit_history.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_operation.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_possible_entry.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_possible_exit.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_purchaseorder.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/ats_reception.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/request.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/response.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/result.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/service.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/broadcast/status.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/case.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/case_ignored_status.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/case_status.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/axis_config.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/bar_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_alignment.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_color.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_configuration.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_data_serie.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_data_serie_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_data_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/chart_render_technology.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/column_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/html_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/line_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/map_center_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/map_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/map_point.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/number_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/pie_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/radar_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/radial_bar_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/scatter_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/scatter_serie.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/scatter_serie_item.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/table_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/table_header.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/table_row.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/timeline_chart.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/timeline_serie.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/charts/timeline_serie_item.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/checkpoint.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/command_series_ticket.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/comment.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/custom_field.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/custom_report_page.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/destination_phone.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/device.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/event.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/exchange_service.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/function.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/geofence.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/geofence_category.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/last_message.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/locator.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/message.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/config.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/parameter.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/schema.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/status.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/modbus/wait.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/notification_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/operation.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/operation_case_payload.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/operation_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/outbound_service.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/platform.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/position.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/presence_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/preset.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_col.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_configuration.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_data_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_format.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_header.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_page.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/report_row.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/request_type.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/sensor.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/sensor_mask.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/sound_effect.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/static_position.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/telemetry/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/telemetry/assetmessage.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/telemetry/devicemessage.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/text_alignment.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/timezone.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/trigger.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/trigger_kind.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/user.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/waypoint.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/entities/weekday.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/helpers/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/helpers/color.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/lcl/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/lcl/core.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk/py.typed +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk.egg-info/SOURCES.txt +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk.egg-info/dependency_links.txt +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk.egg-info/requires.txt +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/layrz_sdk.egg-info/top_level.txt +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/manual_deploy.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/setup.cfg +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/tests/__init__.py +0 -0
- {layrz_sdk-4.0.31 → layrz_sdk-4.0.33}/tests/test_lcl.py +0 -0
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.33
|
|
4
|
+
|
|
5
|
+
- Reworked `BroadcastPayload` serialization to rely on Pydantic field serializers, keeping nested models and timestamps aligned with JSON expectations.
|
|
6
|
+
- Added optional `locator` field to `BroadcastPayload` so locator metadata can accompany broadcast messages.
|
|
7
|
+
|
|
8
|
+
## 4.0.32
|
|
9
|
+
|
|
10
|
+
- Added `locator` field to `OperationPayload` entity to include locator information in operation payloads.
|
|
11
|
+
|
|
3
12
|
## 4.0.31
|
|
4
13
|
|
|
5
14
|
- Refined `OperationPayload` serialization to rely on field serializers, ensuring nested models, enums, datetimes, and timedeltas dump with the expected API shape.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.33
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>, Miguel Zauzich <miguel@goldenm.com>, Angel Prieto <aprieto@goldenm.com>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"""Broadcast Payload data"""
|
|
2
|
+
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, Field, field_serializer
|
|
7
|
+
|
|
8
|
+
from layrz_sdk.constants import UTC
|
|
9
|
+
from layrz_sdk.entities.asset import Asset
|
|
10
|
+
from layrz_sdk.entities.device import Device
|
|
11
|
+
from layrz_sdk.entities.locator import Locator
|
|
12
|
+
from layrz_sdk.entities.trigger import Trigger
|
|
13
|
+
|
|
14
|
+
from .service import BroadcastService
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class BroadcastPayload(BaseModel):
|
|
18
|
+
"""Broadcast payload data, structure that is sent to the Outbound MQTT and other services"""
|
|
19
|
+
|
|
20
|
+
asset: Asset = Field(..., description='Asset object')
|
|
21
|
+
|
|
22
|
+
@field_serializer('asset', when_used='always')
|
|
23
|
+
def serialize_asset(self, v: Asset) -> dict[str, Any]:
|
|
24
|
+
return v.model_dump(mode='json', by_alias=True)
|
|
25
|
+
|
|
26
|
+
primary_device: Device | None = Field(default=None, description='Primary device object')
|
|
27
|
+
|
|
28
|
+
@field_serializer('primary_device', when_used='always')
|
|
29
|
+
def serialize_primary_device(self, v: Device | None) -> dict[str, Any] | None:
|
|
30
|
+
if v is None:
|
|
31
|
+
return None
|
|
32
|
+
return v.model_dump(mode='json', by_alias=True)
|
|
33
|
+
|
|
34
|
+
trigger: Trigger | None = Field(default=None, description='Trigger object, if available')
|
|
35
|
+
|
|
36
|
+
@field_serializer('trigger', when_used='always')
|
|
37
|
+
def serialize_trigger(self, v: Trigger | None) -> dict[str, Any] | None:
|
|
38
|
+
if v is None:
|
|
39
|
+
return None
|
|
40
|
+
return v.model_dump(mode='json', by_alias=True)
|
|
41
|
+
|
|
42
|
+
message_id: int | str = Field(..., description='Message ID')
|
|
43
|
+
service: BroadcastService | None = Field(default=None, description='Broadcast service object')
|
|
44
|
+
|
|
45
|
+
@field_serializer('service', when_used='always')
|
|
46
|
+
def serialize_service(self, v: BroadcastService | None) -> dict[str, Any] | None:
|
|
47
|
+
if v is None:
|
|
48
|
+
return None
|
|
49
|
+
return v.model_dump(mode='json', by_alias=True)
|
|
50
|
+
|
|
51
|
+
position: dict[str, Any] = Field(default_factory=dict, description='Position data, if available')
|
|
52
|
+
sensors: dict[str, Any] = Field(default_factory=dict, description='Sensors data, if available')
|
|
53
|
+
payload: dict[str, Any] = Field(default_factory=dict, description='Payload data, if available')
|
|
54
|
+
received_at: datetime = Field(
|
|
55
|
+
default_factory=lambda: datetime.now(UTC),
|
|
56
|
+
description='Broadcast payload received date',
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
@field_serializer('received_at', when_used='always')
|
|
60
|
+
def serialize_received_at(self, v: datetime) -> float:
|
|
61
|
+
return v.timestamp()
|
|
62
|
+
|
|
63
|
+
locator: Locator | None = Field(default=None, description='Locator object, if available')
|
|
64
|
+
|
|
65
|
+
@field_serializer('locator', when_used='always')
|
|
66
|
+
def serialize_locator(self, v: Locator | None) -> dict[str, Any] | None:
|
|
67
|
+
if v is None:
|
|
68
|
+
return None
|
|
69
|
+
return v.model_dump(mode='json', by_alias=True)
|
|
@@ -8,6 +8,7 @@ from pydantic import BaseModel, Field, field_serializer, field_validator
|
|
|
8
8
|
from layrz_sdk.entities.asset import Asset
|
|
9
9
|
from layrz_sdk.entities.destination_phone import DestinationPhone
|
|
10
10
|
from layrz_sdk.entities.geofence import Geofence
|
|
11
|
+
from layrz_sdk.entities.locator import Locator
|
|
11
12
|
from layrz_sdk.entities.notification_type import TwilioNotificationType
|
|
12
13
|
from layrz_sdk.entities.operation import Operation
|
|
13
14
|
from layrz_sdk.entities.operation_case_payload import OperationCasePayload
|
|
@@ -364,3 +365,14 @@ class OperationPayload(BaseModel):
|
|
|
364
365
|
@field_serializer('duration', when_used='always')
|
|
365
366
|
def serialize_duration(self, value: timedelta) -> float:
|
|
366
367
|
return value.total_seconds()
|
|
368
|
+
|
|
369
|
+
locator: Locator | None = Field(
|
|
370
|
+
default=None,
|
|
371
|
+
description='Defines the generated locator for the operation',
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
@field_serializer('locator', when_used='always')
|
|
375
|
+
def serialize_locator(self, value: Locator | None) -> Any:
|
|
376
|
+
if value is None:
|
|
377
|
+
return None
|
|
378
|
+
return value.model_dump(by_alias=True)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.33
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>, Miguel Zauzich <miguel@goldenm.com>, Angel Prieto <aprieto@goldenm.com>
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"""Broadcast Payload data"""
|
|
2
|
-
|
|
3
|
-
from datetime import datetime
|
|
4
|
-
from typing import Any
|
|
5
|
-
|
|
6
|
-
from pydantic import BaseModel, Field
|
|
7
|
-
|
|
8
|
-
from layrz_sdk.constants import UTC
|
|
9
|
-
from layrz_sdk.entities.asset import Asset
|
|
10
|
-
from layrz_sdk.entities.device import Device
|
|
11
|
-
from layrz_sdk.entities.trigger import Trigger
|
|
12
|
-
|
|
13
|
-
from .service import BroadcastService
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class BroadcastPayload(BaseModel):
|
|
17
|
-
"""Broadcast payload data, structure that is sent to the Outbound MQTT and other services"""
|
|
18
|
-
|
|
19
|
-
model_config = {
|
|
20
|
-
'loc_by_alias': True,
|
|
21
|
-
'json_encoders': {
|
|
22
|
-
datetime: lambda v: v.timestamp(),
|
|
23
|
-
},
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
asset: Asset = Field(..., description='Asset object')
|
|
27
|
-
primary_device: Device | None = Field(default=None, description='Primary device object')
|
|
28
|
-
trigger: Trigger | None = Field(default=None, description='Trigger object, if available')
|
|
29
|
-
message_id: int | str = Field(..., description='Message ID')
|
|
30
|
-
service: BroadcastService | None = Field(default=None, description='Broadcast service object')
|
|
31
|
-
position: dict[str, Any] = Field(default_factory=dict, description='Position data, if available')
|
|
32
|
-
sensors: dict[str, Any] = Field(default_factory=dict, description='Sensors data, if available')
|
|
33
|
-
payload: dict[str, Any] = Field(default_factory=dict, description='Payload data, if available')
|
|
34
|
-
received_at: datetime = Field(
|
|
35
|
-
default_factory=lambda: datetime.now(UTC),
|
|
36
|
-
description='Broadcast payload received date',
|
|
37
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|