import streamlit as st from supabase import create_client, Client from deep_translator import GoogleTranslator URL = "https://ulqepcglktyojwtnhnga.supabase.co" KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVscWVwY2dsa3R5b2p3dG5obmdhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzIwMDM0MjAsImV4cCI6MjA4NzU3OTQyMH0.JLcSI9fYNxjW0MSkJKexXU8KBRQUzrZEj7s7hcbXuAc" supabase: Client = create_client(URL, KEY) st.set_page_config(page_title="Info Prodotto", page_icon="🍷") def translate(text, lang): if not text or lang == 'it': return text try: return GoogleTranslator(source='auto', target=lang).translate(text) except: return text id_v = st.query_params.get("id") if id_v: res = supabase.table("wine_labels").select("*").eq("id", id_v).execute() if res.data: v = res.data[0] t = {"Italiano": "it", "English": "en", "Français": "fr", "Deutsch": "de", "Español": "es"}[st.selectbox("🌍 Language", ["Italiano", "English", "Français", "Deutsch", "Español"])] st.markdown(f"### {v.get('brand_name', '')}") st.header(f"{v.get('wine_name', '')} {int(v.get('vintage', 0))}") if v.get('is_dealcoholized'): st.warning("⚠️ " + translate("Prodotto ottenuto mediante dealcolizzazione", t)) st.subheader("📊 " + translate("Dichiarazione Nutrizionale", t)) st.markdown(f"**{translate('Energia', t)}:** {int(v.get('energy_kj', 0))} kJ / {int(v.get('energy_kcal', 0))} kcal \n**{translate('Zuccheri', t)}:** {v.get('carbs_sugar', 0)} g \n**{translate('Sale', t)}:** {v.get('salt', 0)} g") st.info(f"**{translate('Ingredienti', t)}:** {translate(v.get('ingredients', ''), t)}") st.subheader("♻️ " + translate("Smaltimento", t)) c1, c2, c3 = st.columns(3) c1.write(f"🍾 **Bottiglia**\n{v.get('bottle_material', 'GL 71')}") c2.write(f"🌱 **Tappo**\n{v.get('cork_material', 'FOR 51')}") c3.write(f"🛡️ **Capsula**\n{v.get('capsule_material', 'C/ALU 90')}") else: st.error("Etichetta non trovata.") else: st.info("Scansiona un QR Code WineLink.")