from random import choice, randint

nazwiska = [
"Sylwia Ciuruś",
"Marcelina Janc",
"Dorota Leśny",
"Hubert Beker",
"Albert Budzeń",
"Bruno Kargol",
"Olaf Juroszek",
]

class Osoba:
    def __init__(self, name="XXX", age=30, sex="M", status = "Osoba"):
        self.name = name
        self.sex = sex
        self.age = age
        self.miesieczny_przychod = None
        self.status = status
        # print(f"Start obiektu: {id(self)} - plec: {self.sex} wiek: {self.age}")

    def __str__(self):
        return f"Oto osoba - {self.name} - {self.status=} "

    def roczne_dochody(self):
        if self.miesieczny_przychod is None:
            return -1
        return 12*self.miesieczny_przychod

    def miesieczny_przychod_wpisz(self,wartosc):
        if self.miesieczny_przychod is None:
            self.miesieczny_przychod = wartosc
            print(f"Zmieniam na {wartosc}")
        else:
            print("POzostawiam stare")


class Dyrektor(Osoba):

    def __init__(self,name="Dyrektorskie nazwisko", age=40, sex="M"):
        print("Uruchamiam init dyrektora")
        super().__init__(name, age=age, sex=sex, status="Dyrektor")


    def miesieczny_przychod_wpisz(self, wartosc):
        self.miesieczny_przychod = wartosc *2
        print(f"Zmieniam podwójnie dla dyrektora na {self.miesieczny_przychod}")

    def roczne_dochody(self):
        if self.miesieczny_przychod is None:
            return -2
        return 13*self.miesieczny_przychod

# zadanie - zdefiniować klasę Prektykant z rocznym dochodem 3 * miesięczny / -3

class Praktykant(Osoba):
    nowy_status = "Praktykant"
    def roczne_dochody(self):
        if self.miesieczny_przychod is None:
            return -3
        return 3 * self.miesieczny_przychod


lista_osob = []
for nr in range(10):
    wiek = randint(20,50)
    plec = choice(["M","K","X"])
    nazwisko = choice(nazwiska)
    osoba = Osoba(nazwisko, sex=plec, age=wiek)
    lista_osob.append(osoba)

# pojedynczy dyrektor
dyro = Dyrektor()
lista_osob.append(dyro)

praktyk = Praktykant("Adam praktykant", age=30, sex="X")
lista_osob.append(praktyk)

print(lista_osob)
print("----------------------")
for obiekt_osoby in lista_osob:
    mc = randint(2000,5000)
    print(obiekt_osoby)
    print(f"Roczny dochód wynosi przed: {obiekt_osoby.roczne_dochody()}")
    obiekt_osoby.miesieczny_przychod_wpisz(200)
    obiekt_osoby.miesieczny_przychod_wpisz(300)
    # obiekt_osoby.miesieczny_przychod = "zero" -tak nie robimy!
    print(f"Roczny dochód wynosi po : {obiekt_osoby.roczne_dochody()}")
