import streamlit as st from backend.adapters.snowflake import ( generate_profile_link, get_session, resolve_env, ) from backend.permissions import require_access from backend.queries import query_fan_profile session = get_session() require_access(session, "FAN_LOOKUP") st.title("Fan Lookup") email = st.text_input("Fan email address") if st.button("Generate Preference Center Link"): if not email.strip(): st.warning("Please enter an email address.") else: session = get_session() with st.spinner("Looking up fan…"): profile = query_fan_profile(session, email.strip(), resolve_env(session)) if profile is None: st.warning("No profile found for that email address.") elif not profile.profile_id: st.warning("Fan profile found but has no profile ID.") else: try: env = resolve_env(session) profile_link = generate_profile_link( session, profile.profile_id, env, crm_id=profile.crm_id, ) st.success("Preference Center link generated.") st.markdown( f"[Open Preference Center]({profile_link}) — all activities will be logged!" ) except Exception as e: st.warning(f"Could not generate fan preferences link: {e}")