import streamlit as st from salesforce_integration import fetch_poles import plotly.express as px from modules.visuals import display_dashboard, display_charts st.title("📡 VIEP Smart Poles Dashboard (Salesforce Data)") # Fetch Data df = fetch_poles() # Display Table with extra fields st.subheader("📋 Pole Table") st.dataframe(df[[ "Name", "Solar_Generation__c", "Wind_Generation__c", "Camera_Status__c", "Longitude__c", "Latitude__c", "Last_Check_Time__c" ]]) # Energy Generation Chart st.subheader("⚙ Energy Generation (Solar vs Wind)") st.plotly_chart( px.bar( df, x="Name", y=["Solar_Generation__c", "Wind_Generation__c"], barmode="group", title="Solar vs Wind Energy by Pole" ) ) # Camera Status Visualization (Only once, horizontal bar) st.subheader("🎥 Camera Status Overview") camera_counts = df["Camera_Status__c"].value_counts().reset_index() camera_counts.columns = ["Status", "Count"] fig_camera_status = px.bar( camera_counts, x="Count", y="Status", orientation="h", color="Status", text="Count", title="Camera Status Distribution" ) st.plotly_chart(fig_camera_status) # Custom Visuals display_dashboard(df) display_charts(df)