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