from ..uftp import (
    AgrPortfolioQuery,
    AgrPortfolioUpdate,
    UsefRole,
)
from .base_client import ShapeshifterClient


class ShapeshifterAgrCroClient(ShapeshifterClient):
    """
    Client that allows the Aggregator to connect to the CRO.
    """

    sender_role = UsefRole.AGR
    recipient_role = UsefRole.CRO

    def send_agr_portfolio_update(self, message: AgrPortfolioUpdate) -> None:
        """
        The AGRPortfolioUpdate is used by the AGR to indicate on which
        Connections it represents prosumers.
        """
        return self._send_message(message)

    def send_agr_portfolio_query(self, message: AgrPortfolioQuery) -> None:
        """
        The AGRPortfolioQuery is used by the AGR to retrieve additional
        information on the connections.
        """
        return self._send_message(message)
