import streamlit as st
from db import init_db
import pages

# 1. Setup
st.set_page_config(page_title="Auction Platform", layout="centered")
init_db()
if "AUCTION_MODE" not in st.session_state:
    # Set to 'DIRECT' or 'BROADCAST'
    #st.session_state.AUCTION_MODE = "BROADCAST"
    st.session_state.AUCTION_MODE = "DIRECT"

# 2. Initialize Session States
if "logged_in" not in st.session_state:
    st.session_state.logged_in = False
if "auth_mode" not in st.session_state:
    st.session_state.auth_mode = "Login"
if "user_type" not in st.session_state:
    st.session_state.user_type = None

# --- PHASE 1: AUTHENTICATION (No Sidebar Navigation) ---
if not st.session_state.logged_in:
    st.title("🏛️ Deposit Auction Platform")
    
    col1, col2 = st.columns(2)
    with col1:
        if st.button("Login Screen", width='stretch'):
            st.session_state.auth_mode = "Login"
            st.rerun()
    with col2:
        if st.button("Sign Up Screen", width='stretch'):
            st.session_state.auth_mode = "Signup"
            st.rerun()

    st.divider()

    if st.session_state.auth_mode == "Login":
        pages.login_page()
    elif st.session_state.auth_mode == "Signup":
        # Changed 'selector' to 'radio'
        role = st.radio("I want to register as a:", ["Client", "Bank"], horizontal=True)
        if role == "Client":
            pages.signup_client()
        else:
            pages.signup_bank()

# --- PHASE 2: DASHBOARD (Sidebar Appears Here) ---
else:
    # Safely get user_name
    u_name = st.session_state.get('user_name', 'User')
    st.sidebar.title(f"{u_name}")
    st.sidebar.write(f"Logged in as: **{st.session_state.user_type}**")
    
    # Define Dynamic Menu based on User Type
    # Define Dynamic Menu labels
    if st.session_state.user_type == "Admin":
        menu = ["Admin Dashboard", "About"]
    elif st.session_state.user_type == "Client":
        menu = ["Auctions", "Analytics", "Setup", "About"]
    else: # Bank
        menu = ["Auctions", "Analytics", "About"]
    
    # Changed 'selector' to 'selectbox' or 'radio'
    choice = st.sidebar.selectbox("Navigation", menu)
    
    st.sidebar.divider()
    if st.sidebar.button("Logout"):
        st.session_state.logged_in = False
        st.session_state.user_type = None
        st.rerun()

    # --- Routing Content ---
    # --- CLIENT ROUTING ---
    if st.session_state.user_type == "Client":
        if choice == "Auctions":
            pages.clAuctions(st.session_state.user_name)
            st.write("---")
            pages.clAuctionsConfirm(st.session_state.user_id)
        elif choice == "Analytics":
            pages.clAnalytics(st.session_state.user_name)
        elif choice == "Setup":        
            pages.clSetup(st.session_state.user_id)       
        elif choice == "About":
            pages.about_client_page()

    # --- BANK ROUTING ---
    elif st.session_state.user_type == "Bank":
        if choice == "Auctions":
            # Note: Bank uses user_id, Client uses user_name
            pages.bkAuctionsConfirm(st.session_state.user_id)
        elif choice == "Analytics":
            pages.bkAnalytics(st.session_state.user_id)
        elif choice == "About":
            pages.about_bank_page()

# --- ADMIN ROUTING ---
    elif st.session_state.user_type == "Admin":
        if choice == "Admin Dashboard":
            pages.admin_page()
        elif choice == "About":
            pages.about_page()