
class EquipsONG:

    def __init__(self):
        self.projectes = {}

    def __len__(self):
        return len(self.projectes)
        
    def __getitem__(self, idproj):
        return sorted(self.projectes.get(idproj, []))

    def conjunt_persones(self):
        cjt = set()
        for persones in self.projectes.values():
            cjt.update(persones)
        return cjt
        
    def assigna(self, idproj, idpers):
        if idpers not in self.conjunt_persones():
            if idproj not in self.projectes:
                self.projectes[idproj] = set()
            self.projectes[idproj].add(idpers)

    def esborra_projecte(self, idproj):
        if idproj in self.projectes:
            del self.projectes[idproj]

    def desassigna(self, idproj, idpers):
        if idproj not in self.projectes:
            return
        persones = self.projectes[idproj]
        persones.discard(idpers)
        if len(persones) == 0:
            del self.projectes[idproj]
    
