from IFikoSistem.IFikoAyarKategori import IFikoAyarKategori
from IFikomObject import IFikoObject


class IFikoAyar(IFikoObject):
    def __init__(self, sahip=None, bilgiler={}):
        super(IFikoAyar, self).__init__(sahip)
        self.sahip = sahip
        self.anaProgram = sahip.anaProgram if sahip is not None else None
        # --->
        self.__id = None
        self.__strId = None
        self.__ismi = None
        self.__degeri = None
        self.__degerTuru = None
        self.__aciklama = None
        self.__simge = None
        self.__kategoriId = None
        self.__ekBilgiler = None
        # --->
        self.__degismis = False
        # --->
        self.__bilgiler = bilgiler
        for key in bilgiler:
            setattr(self, key, bilgiler[key])

    @property
    def id(self) -> int:
        return self.__id

    @id.setter
    def id(self, value:int) -> int:
        self.__id = value

    @property
    def strID(self) -> str:
        return self.__strId

    @strID.setter
    def strID(self, value:str):
        self.__strId = value
        self.__degismis = True

    @property
    def ismi(self) -> str:
        return self.__ismi

    @ismi.setter
    def ismi(self, value:str):
        self.__ismi = value
        self.__degismis = True

    @property
    def degeri(self):
        return self.__degeri

    @degeri.setter
    def degeri(self, value):
        self.__degeri = value
        self.__degismis = True

    @property
    def degerTuru(self) -> str:
        return self.__degerTuru

    @degerTuru.setter
    def degerTuru(self, value:str):
        self.__degerTuru = value
        self.__degismis = True

    @property
    def aciklama(self) -> str:
        return self.__aciklama

    @aciklama.setter
    def aciklama(self, value:str):
        self.__aciklama = value
        self.__degismis = True

    @property
    def simge(self):
        return self.__simge

    @simge.setter
    def simge(self, value):
        self.__simge = value
        self.__degismis = True

    @property
    def kategoriId(self) -> int:
        return self.__kategoriId

    @kategoriId.setter
    def kategoriId(self, value:int):
        self.__kategoriId = value
        self.__degismis = True

    @property
    def ekBilgiler(self):
        return self.__ekBilgiler

    @ekBilgiler.setter
    def ekBilgiler(self, value):
        self.__ekBilgiler = value
        self.__degismis = True

    @property
    def degismis(self) -> bool:
        return self.__degismis

    @degismis.setter
    def degismis(self, value:bool):
        self.__degismis = value

    def kaydet(self):
        pass

    @property
    def asInt(self)->int:
        return int(self.degeri)

    @property
    def asFloat(self)->float:
        return float(self.degeri)

    @property
    def asStr(self)->str:
        return self.degeri

    @property
    def asBool(self)->bool:
        if self.degeri == "True":
            return True
        else:
            return False

    @property
    def asObject(self):
        return eval(self.degerTuru+"("+self.degeri+")")

    @property
    def kategori(self):
        return IFikoAyarKategori()

    def __str__(self):
        return repr(self.ismi + " -> " + self.degeri)


