feat: alternar_ativo em CLIENTE e limpar em LOG_PAINEL (camada de banco)

This commit is contained in:
Gustavo
2026-08-20 10:49:43 -03:00
parent 0fdf4ab4e3
commit 0c82170c26
4 changed files with 48 additions and 0 deletions
+14
View File
@@ -229,3 +229,17 @@ def excluir_cliente(cliente_id: int) -> bool:
return cur.rowcount > 0
finally:
conn.close()
def alternar_ativo(cliente_id: int) -> bool:
"""True se a linha existia (cur.rowcount > 0) — mesma lógica de
excluir_cliente/redefinir_senha pra distinguir "alternou" de "não
tinha nada pra alternar". UPDATE ... SET ATIVO = 1 - ATIVO inverte o
valor atomicamente, sem precisar de um SELECT antes."""
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute("UPDATE CLIENTE SET ATIVO = 1 - ATIVO WHERE ID = %s", (cliente_id,))
return cur.rowcount > 0
finally:
conn.close()
+13
View File
@@ -65,3 +65,16 @@ def contar() -> int:
return cur.fetchone()["total"]
finally:
conn.close()
def limpar() -> None:
"""Apaga todo o histórico de LOG_PAINEL. Quem chama (o router) grava
uma entrada nova logo depois disso, registrando quem limpou — nunca
chamar isso sem seguir com um registrar() depois, senão o rastro da
própria limpeza se perde."""
conn = get_connection()
try:
with conn.cursor() as cur:
cur.execute("DELETE FROM LOG_PAINEL")
finally:
conn.close()
+12
View File
@@ -212,6 +212,18 @@ def test_criar_cliente_grava_ativo(cliente_id):
assert cliente["ATIVO"] == 1
def test_alternar_ativo_inverte_o_valor(cliente_id):
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 1
assert db_clientes.alternar_ativo(cliente_id) is True
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 0
assert db_clientes.alternar_ativo(cliente_id) is True
assert db_clientes.obter_cliente(cliente_id)["ATIVO"] == 1
def test_alternar_ativo_id_inexistente_retorna_false():
assert db_clientes.alternar_ativo(999999999) is False
def test_excluir_cliente_com_contato_bloqueia(cliente_id):
conn = get_connection()
try:
+9
View File
@@ -40,3 +40,12 @@ def test_contar(limpar):
db_log.registrar("teste-log", "criar", "cliente", "1", True)
depois = db_log.contar()
assert depois == antes + 1
def test_limpar_apaga_tudo(limpar):
db_log.registrar("teste-log", "criar", "cliente", "1", True)
assert db_log.contar() > 0
db_log.limpar()
assert db_log.contar() == 0