import streamlit as st
import pandas as pd
import traceback
import backend


st.set_page_config(page_title="Cold Email Generator", layout="wide",initial_sidebar_state='collapsed')


def main():
    try:
        # ------------------------------------- Custom CSS -------------------------------------------------------------
        st.markdown(
            """
            <style>
            .css-1d391kg {  /* Adjust this class based on your Streamlit version */
                padding-left: 10px;
                padding-right: 10px;
            }
            </style>
            """,
            unsafe_allow_html=True
        )
        # --------------------------------------------------------------------------------------------------


        st.header("Cold Email Generator")
        
        split_screen_col1, split_screen_col2 = st.columns(2)
        # Input fields
        with split_screen_col1:
            industry_col, recipient_col = st.columns(2)
            with industry_col:
                industry = st.text_input("Industry")
            with recipient_col:
                recipient_role = st.text_input("Recipient Name")
            
            details_col1, details_col2 = st.columns(2)
            with details_col1:
                details_type = st.radio("Select Details Type", ["Personal Details", "Company Details"])
            
            with details_col2:
                name = st.text_input("Senders Name")
                designation = ""
                company_name = ""

                if details_type == "Personal Details":
                    designation = st.text_input("Designation/Role")
                else:
                    company_name = st.text_input("Company Name")
                    designation = st.text_input("Designation/Role")
            
        
            tone = st.selectbox("Tone", ["Formal", "Casual", "Friendly", "Professional"])
            context = st.text_area("Context")

            is_generate_clicked = st.button("Generate Email")
        
        with split_screen_col2:

            if is_generate_clicked :

                generated_email = backend.collect_context_for_email(industry,recipient_role, tone, context, details_type, name, designation, company_name)
                st.session_state.edited_email  = st.text_area("Generated Email", value = generated_email,  height=300, disabled=False)
                st.session_state.is_generate_clicked = True
            else:
                st.text_area("Generated Email",  height=300, disabled=True)

            # Edit and Send button

            if st.button("Completed Editing"):
                st.session_state.is_cmp_editing_clicked = True

        st.markdown("---")

        if st.session_state.get("is_cmp_editing_clicked")  and st.session_state.get("is_generate_clicked") :
            st.subheader("Chat to refine your email")

            
            email_col1, email_col2 = st.columns(2)
            with email_col1:
                sender_email = st.text_input("Sender's Email")
            with email_col2:
                receiver_email = st.text_input("Receiver's Email")
            
            subject = st.text_input("Subject")
            st.text_area("Generated Email", value=st.session_state.edited_email,  height=300, disabled=False)

        is_send_clicked = ""
        if st.session_state.get("is_cmp_editing_clicked") :
           is_send_clicked = st.button("Send Email")

        if is_send_clicked:
            st.subheader("All done, real-time email sending will be implemented in part2 😊 ")
                    

    except Exception as err:
        traceback.print_exc()
        print(err)
        
if __name__ == "__main__":
    main()