import tkinter as tk
from tkinter import messagebox
from pymongo import MongoClient
from pymongo.errors import ConnectionFailure

# Conectar a MongoDB
try:
    client = MongoClient('mongodb+srv://antonio:antzosa8961@cluster0.eiptnqd.mongodb.net/?appName=Cluster0')
    db = client['base_de_datos']
    collection = db['informes']
    print("Conexión a MongoDB exitosa")
except ConnectionFailure:
    print("Error al conectar a MongoDB. Asegúrate de que MongoDB esté corriendo.")
    exit(1)

# Función para guardar datos
def guardar_datos():
    nombre = entry_nombre.get().strip()
    grupo = entry_grupo.get().strip()
    telefono = entry_telefono.get().strip()

    if not nombre or not grupo or not telefono:
        messagebox.showerror("Error", "Todos los campos son obligatorios.")
        return

    # Verificar duplicados
    if collection.find_one({'nombre': nombre, 'grupo': grupo, 'telefono': telefono}):
        messagebox.showerror("Error", "Los datos ya existen en la base de datos.")
        return

    # Insertar datos
    data = {'nombre': nombre, 'grupo': grupo, 'telefono': telefono}
    collection.insert_one(data)
    messagebox.showinfo("Éxito", "Datos guardados correctamente.")

    # Limpiar campos
    entry_nombre.delete(0, tk.END)
    entry_grupo.delete(0, tk.END)
    entry_telefono.delete(0, tk.END)

# Crear la ventana principal
root = tk.Tk()
root.title("Guardar Contactos en MongoDB")

# Etiquetas y campos de entrada
tk.Label(root, text="Nombre:").grid(row=0, column=0, padx=10, pady=10)
entry_nombre = tk.Entry(root)
entry_nombre.grid(row=0, column=1, padx=10, pady=10)

tk.Label(root, text="Grupo:").grid(row=1, column=0, padx=10, pady=10)
entry_grupo = tk.Entry(root)
entry_grupo.grid(row=1, column=1, padx=10, pady=10)

tk.Label(root, text="Teléfono:").grid(row=2, column=0, padx=10, pady=10)
entry_telefono = tk.Entry(root)
entry_telefono.grid(row=2, column=1, padx=10, pady=10)

# Botón guardar
tk.Button(root, text="Guardar", command=guardar_datos).grid(row=3, column=0, columnspan=2, pady=20)

# Ejecutar la aplicación
root.mainloop()