from toontown.toon import ToonDNA
import CatalogItem, CatalogItemList
import json

def createFromJson(jsonData):
    return createFromFields(json.loads(jsonData))

def createFromFields(fields):
    avatar = GiftAvatar()
    
    for key, value in fields.iteritems():
        getattr(avatar, key)(value)
    
    return avatar

class GiftAvatar:
    
    def getStyle(self):
        return self.style
    
    def getHat(self):
        return self.hat
    
    def getGlasses(self):
        return self.glasses
    
    def getBackpack(self):
        return self.backpack
    
    def getShoes(self):
        return self.shoes
    
    def getGiftScheduleBlob(self):
        return self.onGiftOrder.getBlob(store=CatalogItem.Customization | CatalogItem.DeliveryDate)
    
    def setDNAString(self, dnaString):
        self.style = ToonDNA.ToonDNA()
        self.style.makeFromNetString(dnaString.decode('base64'))
    
    def setMailboxContents(self, contents):
        self.mailboxContents = CatalogItemList.CatalogItemList(contents.decode('base64'), store=CatalogItem.Customization)
    
    def setGiftSchedule(self, onOrder):
        self.onGiftOrder = CatalogItemList.CatalogItemList(onOrder.decode('base64'), store=CatalogItem.Customization | CatalogItem.DeliveryDate)
    
    def setDeliverySchedule(self, onOrder):
        self.onOrder = CatalogItemList.CatalogItemList(onOrder.decode('base64'), store=CatalogItem.Customization | CatalogItem.DeliveryDate)
    
    def setHat(self, hat):
        self.hat = hat
    
    def setGlasses(self, glasses):
        self.glasses = glasses
    
    def setBackpack(self, backpack):
        self.backpack = backpack
    
    def setShoes(self, shoes):
        self.shoes = shoes
    
    def setHatList(self, list):
        self.hatList = list[0]
    
    def setGlassesList(self, list):
        self.glassesList = list[0]
    
    def setBackpackList(self, list):
        self.backpackList = list[0]
    
    def setShoesList(self, list):
        self.shoesList = list[0]
    
    def setCustomMessages(self, customMessages):
        self.customMessages = customMessages[0]
    
    def setClothesTopsList(self, clothesList):
        self.clothesTopsList = clothesList[0]
    
    def setClothesBottomsList(self, clothesList):
        self.clothesBottomsList = clothesList[0]
    
    def setEmoteAccess(self, emoteAccess):
        self.emoteAccess = emoteAccess[0]
    
    def setPetTrickPhrases(self, tricks):
        self.petTrickPhrases = tricks[0]
    
    def setNametagStyles(self, nametagStyles):
        self.nametagStyles = nametagStyles[0]