from pymongo import MongoClient

# 1. Configuración de la conexión
# Cambia 'TU_URI_AQUÍ' por tu cadena de conexión de MongoDB Atlas
conexion = MongoClient("mongodb+srv://diegoexamen:rdr2@cluster0.0lv0uc7.mongodb.net/?appName=Cluster0")

try:
    client = MongoClient(MONGO_URI)
    db = client["examen1"]  # Nombre de tu base de datos
    contactos = db["ejercicio1"]      # Nombre de la colección

    # 2. Crear un índice único para el teléfono
    # Esto solo se necesita ejecutar una vez, pero dejarlo aquí asegura que la regla exista
    contactos.create_index("telefono", unique=True)
    print("✅ Conexión exitosa y regla de unicidad activa.\n")

except Exception as e:
    print(f"❌ Error de conexión: {e}")
    exit()

def guardar_contacto():
    print("--- Registro de Nuevo Contacto ---")
    nombre = input("Nombre: ")
    grupo = input("Grupo: ")
    telefono = input("Teléfono: ")

    nuevo_doc = {
        "nombre": nombre,
        "grupo": grupo,
        "telefono": telefono
    }

    try:
        # 3. Insertar en la base de datos
        resultado = contactos.insert_one(nuevo_doc)
        print(f"\n✨ ¡Guardado con éxito! ID: {resultado.inserted_id}")
    
    except errors.DuplicateKeyError:
        # Este error salta gracias al índice único que creamos arriba
        print(f"\n⚠️ Error: El teléfono '{telefono}' ya está registrado.")
    except Exception as e:
        print(f"\n❌ Ocurrió un error inesperado: {e}")

if __name__ == "__main__":
    while True:
        guardar_contacto()
        continuar = input("\n¿Deseas agregar otro? (s/n): ").lower()
        if continuar != 's':
            break
    
    client.close()
    print("Conexión cerrada. ¡Adiós!")