from app.main.services.common.admin_service import AdminService

import logging
logger = logging.getLogger()


class AdminOrchestrator:

    def __init__(self, session):
        self.session = session
        self.admin_service = AdminService(self.session)

    def get_clients(self):
        logger.info("AdminOrchestrator get_clients")
        return self.admin_service.get_clients()

    def get_client_colors(self, client_id):
        logger.info("AdminOrchestrator get_client_colors")
        return self.admin_service.get_client_colors(client_id)

    def get_games(self):
        logger.info("AdminOrchestrator get_games")
        return self.admin_service.get_games()

    def get_client_details(self, client_id):
        logger.info("AdminOrchestrator get_client_details")
        return self.admin_service.get_client_details(client_id)

    def add_client(self, admin_id, client_data):
        logger.info("AdminOrchestrator add_client admin id " + str(admin_id))
        return self.admin_service.add_client(client_data)

    def add_game(self, admin_id, game_data):
        logger.info("AdminOrchestrator add_game admin id " + str(admin_id))
        return self.admin_service.add_game(game_data)

    def edit_client(self, admin_id, client_data):
        logger.info("AdminOrchestrator edit_client admin id " + str(admin_id))
        return self.admin_service.edit_client(client_data)

    def add_moderators(self, admin_id, moderators_data):
        logger.info("AdminOrchestrator add_moderators admin id " + str(admin_id))
        return self.admin_service.add_moderators(moderators_data)

    def cancel_moderator(self, admin_id, client_id, moderator_id):
        logger.info("AdminOrchestrator cancel_moderator admin id " + str(admin_id))
        return self.admin_service.cancel_moderator(client_id, moderator_id)

    def affect_games(self, admin_id, affect_games_data):
        logger.info("AdminOrchestrator affect_games admin id " + str(admin_id))
        return self.admin_service.affect_games(affect_games_data)

    def upload_photo(self,client, files, client_data, host_url):
        return self.admin_service.upload_photo(client, files, client_data, host_url)

    def edit_photo(self, files, client_data, host_url):
        return self.admin_service.edit_photo(files, client_data, host_url)

    def delete_photo(self,path_logo):
        return self.admin_service.delete_photo(path_logo)