import enum as enum
import cichnaDC.cdc_logger.cdc_logger as logger
import os

class Aufgabenstatus(enum.Enum):
    Angelegt = 0
    Begonnen = 1
    Erledigt = 2
    Geloescht = 3
    Archiviert = 4

class Speicher:
    def __init__(self, user, logger=None):
        self.Logger = logger
        self.User = user
    def ladePersonenliste(self):
        pass
    def speicherePersonenliste(self, personenliste):
        pass


class DateiSpeicher(Speicher):
    def __init__(self, user, logger=None):
        super().__init__(user, logger)
        if self.Logger is not None:
            self.Logger.write("DateiSpeicher für User", self.User, "instanziiert")

    def ladePersonenliste(self):
        if self.Logger is not None:
            self.Logger.write("Beginne Laden Personenlsite für User", self.User)
            self.Logger.write("Beende Laden Personenlsite für User", self.User)

    def speicherePersonenliste(self, personenliste):
        directory = "./" + user
        filenameEinzelpersonen = directory + "/einzelpersonen.txt"
        filenameGruppen = directory + "/gruppen.txt"
        if os.path.isdir(directory) == False:
            print("Directory fehlt!")

        fileEinzelpersonen = open(filenameEinzelpersonen, "w")
        for person in personenliste:
            pass


class Personenliste():
    def __init__(self, speicher=None, logger=None):
        self.Personen = []
        self.Speicher = speicher
        self.Logger = logger
    def speichern(self):
        if self.Speicher is not None:
            self.Speicher.speicherePersonenliste(self.Personen)

class Person:
    def __init__(self, isGroup, personId, logger=None):
        self.IsGroup = isGroup
        self.PersonId = personId
        self.Logger = logger

class Einzelperson(Person):
    def __init__(self, personId, logger):
        super().__init__(False, personId, logger)
    def anlegen(self):
        if self.Logger is not None:
            self.Logger.write("Einzelperson mit personId", self.PersonId, "wird angelegt")

class Gruppe(Person):
    def __init__(self, personId, logger):
        super().__init__(True, personId, logger)
    def anlegen(self):
        if self.Logger is not None:
            self.Logger.write("Gruppe mit personId", self.PersonId, "wird angelegt")



user = "Gcsoft"
log = logger.CDC_Logger("todo.log")
speicher = DateiSpeicher(user, log)
personen = Personenliste(speicher, log)

p1 = Einzelperson(1, log)
p1.anlegen()
p2 = Gruppe(2, log)
p2.anlegen()
personen.speichern()