from .eventbrite_service import EventbriteService
from .shopify_service import ShopifyService


class IntegrationsService:
    """Service to handle interaction with external integrations.

    This service manages the interaction with external integrations, such as Shopify and Eventbrite.

    Attributes:
        None
    """

    @staticmethod
    def create_single_use_discount_code(
            discount_value, discount_type, offer_integration_data, client_integration_data
        ):
            if not offer_integration_data:
                print("Missing offer integration data.")
                return None
            if not client_integration_data:
                print("Missing client integration data.")
                return None
            if offer_integration_data.get("shopify"):
                return ShopifyService.create_single_use_discount_code(
                    client_integration_data["shopify"]["storeName"],
                    client_integration_data["shopify"]["accessToken"],
                    offer_integration_data["shopify"]["priceRuleID"],
                )
            elif offer_integration_data.get("eventbrite"):
                return EventbriteService.create_event_discount_code(
                    client_integration_data["eventbrite"]["organizationID"],
                    offer_integration_data["eventbrite"]["eventID"],
                    client_integration_data["eventbrite"]["accessToken"],
                    discount_value,
                    discount_type,
                )
            # (add more rewards integrations here)
            else:
                return None