# -*- coding: utf-8 -*-
"""
Automatically generated by DeachSword-DearSakura
Author: YinMo (WEDeach)
Version: 1.0.6
"""
from typing import List
from .BaseService import BaseService


class RelationService(BaseService):
    RelationService_REQ_TYPE = 4  # BASE_VAL
    RelationService_RES_TYPE = 4  # BASE_VAL
    RelationService_API_PATH = None  # BASE_VAL

    def __init__(self):
        self.RelationService_API_PATH = "/RE4"

    def getTargetProfiles(self, mids: List[str]):
        """
        Get target profiles (test).

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        METHOD_NAME = "getTargetProfiles"
        targets = []
        for mid in mids:
            targets.append(
                [
                    [11, 1, mid]
                ]
            )
        request = [
            [15, 1, [12, targets]]
        ]
        params = [
            [12, 1, request]
        ]
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getUserStatuses(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getUserStatuses is not implemented")
        METHOD_NAME = "getUserStatuses"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getRecommendationDetails(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getRecommendationDetails is not implemented")
        METHOD_NAME = "getRecommendationDetails"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getContactCalendarEvents(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getContactCalendarEvents is not implemented")
        METHOD_NAME = "getContactCalendarEvents"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getBlockDetails(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getBlockDetails is not implemented")
        METHOD_NAME = "getBlockDetails"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getContactsV3(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getContactsV3 is not implemented")
        METHOD_NAME = "getContactsV3"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def getFriendDetails(self):
        """
        AUTO_GENERATED_CODE! DONT_USE_THIS_FUNC!!

        GENERATED BY YinMo0913_DeachSword-DearSakura_v1.0.6.py
        DATETIME: 03/10/2023, 13:41:11
        """
        raise Exception("getFriendDetails is not implemented")
        METHOD_NAME = "getFriendDetails"
        params = []
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )

    def addFriendByMid(
        self,
        userMid: str,
        reference: str = None,
        trackingMetaType: int = 5,
        trackingMetaHint: str = None,
    ):
        """Add friend by mid."""
        METHOD_NAME = "addFriendByMid"
        addMeta = [[11, 1, trackingMetaHint]]
        trackingMeta = [[12, trackingMetaType, addMeta]]
        tracking = [[11, 1, reference], [12, 2, trackingMeta]]
        request = [[8, 1, self.getCurrReqId()], [11, 2, userMid], [12, 3, tracking]]
        params = [[12, 1, request]]
        sqrd = self.generateDummyProtocol(
            METHOD_NAME, params, self.RelationService_REQ_TYPE
        )
        return self.postPackDataAndGetUnpackRespData(
            self.RelationService_API_PATH, sqrd, self.RelationService_RES_TYPE
        )
