Исходный код domain.entities.device

from dataclasses import dataclass, field
from uuid import UUID, uuid4
from datetime import datetime, timezone
from typing import Optional

from domain.value_objects.mac_address import MacAddress
from domain.value_objects.ip_address import IpAddress


[документация] @dataclass class Device: '''Represents a network device with its attributes and behaviors.''' mac_address: MacAddress model: Optional[str] = None last_activity: Optional[datetime] = None ip_address: Optional[IpAddress] = None id: UUID = field(default_factory=uuid4) config_id: Optional[UUID] = None
[документация] def update_last_activity(self) -> None: '''Updates the last activity timestamp to the current UTC time.''' self.last_activity = datetime.now(tz=timezone.utc)
[документация] def assign_config(self, config_id: UUID) -> None: '''Assigns a configuration ID to the device.''' self.config_id = config_id