File size: 2,713 Bytes
9147701
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import streamlit as st
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine

from sqlalchemy import Column, Integer, String, Date, Boolean, Sequence
from sqlalchemy.orm import declarative_base
from sqlalchemy.sql import text

Base = declarative_base()

class Customer(Base):
    __tablename__ = 'customers'

    id = Column(Integer, Sequence('customers_id_seq'), primary_key=True)
    first_name = Column(String(50), nullable=False)
    last_name = Column(String(50), nullable=False)
    email = Column(String(255), unique=True, nullable=False)
    phone_number = Column(String(10))
    signup_date = Column(Date, server_default=text("(CURRENT_DATE)"), nullable=False)
    active = Column(Boolean, default=True, nullable=False)

# Set up the database
engine = create_engine(st.secrets["SQL_CONNECTION_STRING"])
Base.metadata.create_all(engine)

# Set up the session
Session = sessionmaker(bind=engine)
session = Session()

# Set up the main interface
st.title('Customer Management App')

first_name = st.text_input('First Name')
last_name = st.text_input('Last Name')
email = st.text_input('Email')
phone_number = st.text_input('Phone Number')

if st.button('Add Customer'):
    new_customer = Customer(first_name=first_name, last_name=last_name, email=email, phone_number=phone_number)
    session.add(new_customer)
    session.commit()

if st.button('Show Customers'):
    customers = session.query(Customer).all()
    for customer in customers:
        st.write(f'ID: {customer.id}, First Name: {customer.first_name}, Last Name: {customer.last_name}, Email: {customer.email}, Phone Number: {customer.phone_number}, Signup Date: {customer.signup_date}, Active: {customer.active}')

# TODO: add and delete don't work
# if st.button('Delete Customer'):
#     customer_id = st.number_input('Enter the ID of the customer to delete', value=None, min_value=0)
#     if customer_id:
#         customer_to_delete = session.query(Customer).get(customer_id)
#         session.delete(customer_to_delete)
#         session.commit()
#     else:
#         st.write('Customer not found')
#
# if st.button('Update Customer'):
#     customer_id = st.number_input('Enter the ID of the customer to update', value=0, min_value=0)
#     customer_to_update = session.query(Customer).get(customer_id)
#     if customer_to_update is not None:
#         customer_to_update.first_name = st.text_input('New First Name')
#         customer_to_update.last_name = st.text_input('New Last Name')
#         customer_to_update.email = st.text_input('New Email')
#         customer_to_update.phone_number = st.text_input('New Phone Number')
#         session.commit()
#     else:
#         st.write('Customer not found')