from persistencia.persistente import Persistente from modelo.pessoa import Pessoa from modelo.pet import Pet from modelo.adocao import Adocao class BancoDeDados: def __init__(self): self.pessoas = Persistente() self.pets = Persistente() self.adocoes = Persistente() def obter_proximo_id_pessoa(self): ids_pessoas = [p.id for p in self.pessoas.listar_todos()] return max(ids_pessoas) + 1 if ids_pessoas else 1 def obter_proximo_id_pet(self): ids_pets = [p.id for p in self.pets.listar_todos()] return max(ids_pets) + 1 if ids_pets else 1 def obter_proximo_id_adocao(self): ids_adocoes = [a.id for a in self.adocoes.listar_todos()] return max(ids_adocoes) + 1 if ids_adocoes else 1 def remover_pessoa(self, id_pessoa: int): adocoes_para_remover = [ adocao for adocao in self.adocoes.listar_todos() if adocao.adotante.id == id_pessoa ] for adocao in adocoes_para_remover: self.adocoes.remover(adocao.id) self.pessoas.remover(id_pessoa) def remover_pet(self, id_pet: int): adocoes_para_remover = [] for adocao in self.adocoes.listar_todos(): itens_para_manter = [item for item in adocao.itens if item.pet.id != id_pet] if len(itens_para_manter) < len(adocao.itens): adocao.itens = itens_para_manter if not adocao.itens: adocoes_para_remover.append(adocao.id) for adocao_id in adocoes_para_remover: self.adocoes.remover(adocao_id) self.pets.remover(id_pet)