Subida da versão estável

This commit is contained in:
2026-03-21 22:45:10 -03:00
parent 12cf7f4649
commit d2b05ec1c9
21 changed files with 1914 additions and 0 deletions

229
BD_manager_Mysql.py Normal file
View File

@@ -0,0 +1,229 @@
import mysql.connector
from mysql.connector import Error
from typing import Optional, Dict, List, Dict, Any
from datetime import datetime
DB_CONFIG = {
"host": "mysql-1ee2345c-glauberroberto-0e4e.h.aivencloud.com",
"user": "avnadmin",
"password": "AVNS_rmoyFuLW827cdgCMPwh",
"database": "agenda",
"port": 27341
}
def get_connection():
return mysql.connector.connect(**DB_CONFIG)
def inserir_acompanhamento(chat_id: int, status: str, nome: str) -> None:
conn = get_connection()
cursor = conn.cursor()
query = """
INSERT INTO acompanhamento (chat_id, status, nome)
VALUES (%s, %s, %s)
"""
cursor.execute(query, (chat_id, status, nome))
conn.commit()
cursor.close()
conn.close()
def atualizar_acompanhamento(chat_id: int, campo: str, information: str) -> bool:
campos_permitidos = {"status", "nome", "data_event", "time_event"}
if campo not in campos_permitidos:
raise ValueError("Campo não permitido")
conn = get_connection()
cursor = conn.cursor()
cursor.execute(
"""
SELECT id
FROM acompanhamento
WHERE chat_id = %s
ORDER BY id DESC
LIMIT 1
""",
(chat_id,)
)
row = cursor.fetchone()
if row is None:
cursor.close()
conn.close()
return False
ultimo_id = row[0]
query = f"UPDATE acompanhamento SET {campo} = %s WHERE id = %s"
cursor.execute(query, (information, ultimo_id))
conn.commit()
cursor.close()
conn.close()
return True
def buscar_ultimo_chat(chat_id: int) -> Optional[Dict[str, object]]:
conn = get_connection()
cursor = conn.cursor(dictionary=True)
cursor.execute(
"""
SELECT id, chat_id, status, nome, data_event, time_event
FROM acompanhamento
WHERE chat_id = %s
ORDER BY id DESC
LIMIT 1
""",
(chat_id,)
)
row = cursor.fetchone()
cursor.close()
conn.close()
return row
def get_events():
conn = get_connection()
cur = conn.cursor(dictionary=True)
cur.execute("""
SELECT * FROM events
""")
events = cur.fetchall()
cur.close()
conn.close()
return events
def update_events(id, campo, informacao):
try:
# Conexão com o banco de dados
conn = get_connection()
cursor = conn.cursor()
cursor = conn.cursor()
# Query de atualização
sql = f"""
UPDATE events
SET {campo} = {informacao}
WHERE id = {id};
"""
cursor.execute(sql)
conn.commit() # Confirma a transação
print(f"{cursor.rowcount} registros atualizados.")
except mysql.connector.Error as erro:
print(f"Erro ao atualizar: {erro}")
finally:
if conn.is_connected():
cursor.close()
conn.close()
print("Conexão encerrada.")
#update_events(18, "avisos","1")
def inserir_evento(
event_date,
start_time,
end_time,
title,
description,
chat_id,
name,
created_by
) -> None:
conn = get_connection()
cursor = conn.cursor()
query = """
INSERT INTO events
(event_date, start_time, end_time, title, description, chat_id, name, created_by)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
"""
cursor.execute(
query,
(event_date, start_time, end_time, title, description, chat_id, name, created_by)
)
conn.commit()
cursor.close()
conn.close()
#--- Query agenda
def listar_agenda(campo: str, parametro: Any) -> List[Dict[str, Any]]:
colunas_permitidas = {"id", "periodo", "data", "nome", "status"} # ajuste conforme sua tabela
if campo not in colunas_permitidas:
raise ValueError("Campo inválido para consulta.")
try:
conn = get_connection()
cursor = conn.cursor(dictionary=True)
query = f"SELECT * FROM agenda WHERE {campo} = %s AND disponibilidade = 'sim';"
cursor.execute(query, (parametro,))
rows = cursor.fetchall()
return rows
except mysql.connector.Error as e:
print(f"Erro na consulta: {e}")
return []
finally:
if conn:
conn.close()
def atualizar_agenda(id, campo, informacao):
try:
# Conexão com o banco de dados
conn = get_connection()
cursor = conn.cursor()
cursor = conn.cursor()
# Query de atualização
sql = f"""
UPDATE agenda
SET {campo} = {informacao}
WHERE id = {id};
"""
cursor.execute(sql)
conn.commit() # Confirma a transação
print(f"{cursor.rowcount} registros atualizados.")
except mysql.connector.Error as erro:
print(f"Erro ao atualizar: {erro}")
finally:
if conn.is_connected():
cursor.close()
conn.close()
print("Conexão encerrada.")
#atualizar_agenda(6, "disponibilidade", 7)