Add existing file
This commit is contained in:
parent
6fd5a06e55
commit
1453856789
|
@ -0,0 +1,5 @@
|
|||
from visao.interface_texto import InterfaceTexto
|
||||
|
||||
if __name__ == "__main__":
|
||||
interface = InterfaceTexto()
|
||||
interface.executar()
|
|
@ -0,0 +1,19 @@
|
|||
from modelo.entidade import Entidade
|
||||
|
||||
class Adocao(Entidade):
|
||||
def __init__(self, id_, adotante):
|
||||
super().__init__(id_)
|
||||
self.adotante = adotante
|
||||
self.itens = []
|
||||
|
||||
def adicionar_item(self, item):
|
||||
self.itens.append(item)
|
||||
|
||||
def remover_item(self, item):
|
||||
self.itens.remove(item)
|
||||
|
||||
def __str__(self):
|
||||
texto = f"{super().__str__()} | Adotante: {self.adotante}\n"
|
||||
for item in self.itens:
|
||||
texto += f" {item}\n"
|
||||
return texto
|
|
@ -0,0 +1,6 @@
|
|||
class Entidade:
|
||||
def __init__(self, id_):
|
||||
self.id = id_
|
||||
|
||||
def __str__(self):
|
||||
return f"ID: {self.id}"
|
|
@ -0,0 +1,7 @@
|
|||
class ItemAdocao:
|
||||
def __init__(self, pet, data):
|
||||
self.pet = pet
|
||||
self.data = data
|
||||
|
||||
def __str__(self):
|
||||
return f"Pet: [{self.pet}] | Data: {self.data}"
|
|
@ -0,0 +1,9 @@
|
|||
from modelo.entidade import Entidade
|
||||
|
||||
class Pessoa(Entidade):
|
||||
def __init__(self, id_, nome):
|
||||
super().__init__(id_)
|
||||
self.nome = nome
|
||||
|
||||
def __str__(self):
|
||||
return f"{super().__str__()} | Nome: {self.nome}"
|
|
@ -0,0 +1,10 @@
|
|||
from modelo.entidade import Entidade
|
||||
|
||||
class Pet(Entidade):
|
||||
def __init__(self, id_, nome, especie):
|
||||
super().__init__(id_)
|
||||
self.nome = nome
|
||||
self.especie = especie
|
||||
|
||||
def __str__(self):
|
||||
return f"{super().__str__()} | Nome: {self.nome} | Espécie: {self.especie}"
|
|
@ -0,0 +1,10 @@
|
|||
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()
|
|
@ -0,0 +1,2 @@
|
|||
class EntidadeNaoEncontradaException(Exception):
|
||||
pass
|
|
@ -0,0 +1,29 @@
|
|||
from persistencia.excecoes import EntidadeNaoEncontradaException
|
||||
|
||||
class Persistente:
|
||||
def __init__(self):
|
||||
self.lista = []
|
||||
|
||||
def inserir(self, obj):
|
||||
self.lista.append(obj)
|
||||
|
||||
def alterar(self, id_, novo_obj):
|
||||
antigo = self.buscar_por_id(id_)
|
||||
self.lista.remove(antigo)
|
||||
self.lista.append(novo_obj)
|
||||
|
||||
def remover(self, id_):
|
||||
obj = self.buscar_por_id(id_)
|
||||
self.lista.remove(obj)
|
||||
|
||||
def buscar_por_id(self, id_):
|
||||
for obj in self.lista:
|
||||
if obj.id == id_:
|
||||
return obj
|
||||
raise EntidadeNaoEncontradaException(f"ID não encontrado: {id_}")
|
||||
|
||||
def listar_todos(self):
|
||||
return self.lista
|
||||
|
||||
def __str__(self):
|
||||
return "\n".join(str(obj) for obj in self.lista)
|
|
@ -0,0 +1,131 @@
|
|||
from modelo.pessoa import Pessoa
|
||||
from modelo.pet import Pet
|
||||
from modelo.adocao import Adocao
|
||||
from modelo.item_adocao import ItemAdocao
|
||||
from persistencia.banco_dados import BancoDeDados
|
||||
from persistencia.excecoes import EntidadeNaoEncontradaException
|
||||
|
||||
class InterfaceTexto:
|
||||
def __init__(self):
|
||||
self.bd = BancoDeDados()
|
||||
self.proximo_id = 1
|
||||
|
||||
def executar(self):
|
||||
while True:
|
||||
print("\n=== Menu Principal ===")
|
||||
print("1. Pessoas")
|
||||
print("2. Pets")
|
||||
print("3. Adoções")
|
||||
print("0. Sair")
|
||||
op = input("Escolha: ")
|
||||
|
||||
if op == "1":
|
||||
self.menu_entidade("Pessoa")
|
||||
elif op == "2":
|
||||
self.menu_entidade("Pet")
|
||||
elif op == "3":
|
||||
self.menu_adocao()
|
||||
elif op == "0":
|
||||
break
|
||||
|
||||
def menu_entidade(self, tipo):
|
||||
while True:
|
||||
print(f"\n=== Menu {tipo} ===")
|
||||
print("1. Inserir")
|
||||
print("2. Alterar")
|
||||
print("3. Apagar")
|
||||
print("4. Visualizar por ID")
|
||||
print("5. Visualizar todos")
|
||||
print("0. Voltar")
|
||||
op = input("Escolha: ")
|
||||
|
||||
try:
|
||||
if tipo == "Pessoa":
|
||||
self.operacoes_pessoa(op)
|
||||
elif tipo == "Pet":
|
||||
self.operacoes_pet(op)
|
||||
except Exception as e:
|
||||
print("Erro:", e)
|
||||
|
||||
if op == "0":
|
||||
break
|
||||
|
||||
def operacoes_pessoa(self, op):
|
||||
if op == "1":
|
||||
nome = input("Nome: ")
|
||||
self.bd.pessoas.inserir(Pessoa(self.proximo_id, nome))
|
||||
self.proximo_id += 1
|
||||
elif op == "2":
|
||||
id_ = int(input("ID: "))
|
||||
nome = input("Novo nome: ")
|
||||
self.bd.pessoas.alterar(id_, Pessoa(id_, nome))
|
||||
elif op == "3":
|
||||
id_ = int(input("ID: "))
|
||||
self.bd.pessoas.remover(id_)
|
||||
elif op == "4":
|
||||
id_ = int(input("ID: "))
|
||||
print(self.bd.pessoas.buscar_por_id(id_))
|
||||
elif op == "5":
|
||||
print(self.bd.pessoas)
|
||||
|
||||
def operacoes_pet(self, op):
|
||||
if op == "1":
|
||||
nome = input("Nome do pet: ")
|
||||
especie = input("Espécie: ")
|
||||
self.bd.pets.inserir(Pet(self.proximo_id, nome, especie))
|
||||
self.proximo_id += 1
|
||||
elif op == "2":
|
||||
id_ = int(input("ID: "))
|
||||
nome = input("Novo nome: ")
|
||||
especie = input("Nova espécie: ")
|
||||
self.bd.pets.alterar(id_, Pet(id_, nome, especie))
|
||||
elif op == "3":
|
||||
id_ = int(input("ID: "))
|
||||
self.bd.pets.remover(id_)
|
||||
elif op == "4":
|
||||
id_ = int(input("ID: "))
|
||||
print(self.bd.pets.buscar_por_id(id_))
|
||||
elif op == "5":
|
||||
print(self.bd.pets)
|
||||
|
||||
def menu_adocao(self):
|
||||
while True:
|
||||
print("\n=== Menu Adoções ===")
|
||||
print("1. Nova Adoção")
|
||||
print("2. Visualizar por ID")
|
||||
print("3. Visualizar todas")
|
||||
print("0. Voltar")
|
||||
op = input("Escolha: ")
|
||||
|
||||
if op == "1":
|
||||
self.nova_adocao()
|
||||
elif op == "2":
|
||||
id_ = int(input("ID da adoção: "))
|
||||
print(self.bd.adocoes.buscar_por_id(id_))
|
||||
elif op == "3":
|
||||
print(self.bd.adocoes)
|
||||
elif op == "0":
|
||||
break
|
||||
|
||||
def nova_adocao(self):
|
||||
try:
|
||||
id_pessoa = int(input("ID do adotante: "))
|
||||
pessoa = self.bd.pessoas.buscar_por_id(id_pessoa)
|
||||
adocao = Adocao(self.proximo_id, pessoa)
|
||||
self.proximo_id += 1
|
||||
|
||||
while True:
|
||||
print("1. Adicionar pet")
|
||||
print("0. Finalizar")
|
||||
opc = input("Escolha: ")
|
||||
if opc == "1":
|
||||
id_pet = int(input("ID do pet: "))
|
||||
pet = self.bd.pets.buscar_por_id(id_pet)
|
||||
data = input("Data da adoção: ")
|
||||
adocao.adicionar_item(ItemAdocao(pet, data))
|
||||
elif opc == "0":
|
||||
break
|
||||
|
||||
self.bd.adocoes.inserir(adocao)
|
||||
except EntidadeNaoEncontradaException as e:
|
||||
print("Erro:", e)
|
Loading…
Reference in New Issue