from typing import Dict, List, Optional, Any from utils.functions.items_to_dict import _row_to_contact_dict import logging from utils.functions.functions import _safe_strip logger = logging.getLogger(__name__) def _get_contacts_client(numero: str, conn) -> list: try: cursor = conn.cursor() query = """ SELECT CT_Num, CT_No, N_Contact, CT_Civilite, CT_Nom, CT_Prenom, CT_Fonction, N_Service, CT_Telephone, CT_TelPortable, CT_Telecopie, CT_EMail, CT_Facebook, CT_LinkedIn, CT_Skype FROM F_CONTACTT WHERE CT_Num = ? ORDER BY N_Contact, CT_Nom, CT_Prenom """ cursor.execute(query, [numero]) rows = cursor.fetchall() query_client = """ SELECT CT_Contact FROM F_COMPTET WHERE CT_Num = ? """ cursor.execute(query_client, [numero]) client_row = cursor.fetchone() nom_contact_defaut = None if client_row: nom_contact_defaut = _safe_strip(client_row.CT_Contact) contacts = [] for row in rows: contact = _row_to_contact_dict(row) if nom_contact_defaut: nom_complet = f"{contact.get('prenom', '')} {contact['nom']}".strip() contact["est_defaut"] = ( nom_complet == nom_contact_defaut or contact['nom'] == nom_contact_defaut ) else: contact["est_defaut"] = False contacts.append(contact) return contacts except Exception as e: logger.warning(f" Impossible de récupérer contacts pour {numero}: {e}") return [] __all__ = [ "_get_contacts_client" ]