from tkinter import *
import pickle  # for saving/loading contacts data
# Create the main window
window = Tk()
window.title("Simple Contact Manager")

contacts = []  # List to store Contact objects (name, phone number)

class Contact:
  def __init__(self, name, phone_number):
    self.name = name
    self.phone_number = phone_number

# Listbox to display contacts
contact_list = Listbox(window, width=50)
contact_list.pack()  # Add listbox to window

# Entry fields for name and phone number
name_entry = Entry(window)
phone_entry = Entry(window)
name_entry.pack()
phone_entry.pack()

# Function to add a new contact
def add_contact():
  name = name_entry.get()
  phone_number = phone_entry.get()
  # Create a Contact object and add it to the list
  new_contact = Contact(name, phone_number)
  contacts.append(new_contaact)
  # Update the listbox
  update_contact_list()
  # Clear entry fields
  name_entry.delete(0, END)
  phone_entry.delete(0, END)

# Function to update the listbox with contacts
def update_contact_list():
  contact_list.delete(0, END)  # Clear existing list
  for contact in contacts:
    contact_list.insert(END, f"{contact.name} - {contact.phone_number}")

# Add button to call the add_contact function
add_button = Button(window, text="Add Contact", command=add_contact)
add_button.pack()

# ... (similar functions for edit, delete, search can be implemented)

# Button to save contacts to a file
def save_contacts():
  with open("contacts.data", "wb") as f:
    pickle.dump(contacts, f)  # Pickle data for storage

save_button = Button(window, text="Save Contacts", command=save_contacts)
save_button.pack()

# Button to load contacts from a file (optional)
# ...

# Run the main event loop
window.mainloop()