# © Crown-owned copyright 2023, Defence Science and Technology Laboratory UK
"""The Service class."""

from primaite.common.enums import SoftwareState


class Service(object):
    """Service class."""

    def __init__(self, name: str, port: str, software_state: SoftwareState) -> None:
        """
        Initialise a service.

        :param name: The service name.
        :param port: The service port.
        :param software_state: The service SoftwareState.
        """
        self.name: str = name
        self.port: str = port
        self.software_state: SoftwareState = software_state
        self.patching_count: int = 0

    def reduce_patching_count(self) -> None:
        """Reduces the patching count for the service."""
        self.patching_count -= 1
        if self.patching_count <= 0:
            self.patching_count = 0
            self.software_state = SoftwareState.GOOD
