streamlit-template-space / src /streamlit_app.py
hassan-baidoa's picture
Update src/streamlit_app.py
26aca88 verified
Raw
History Blame
9.12 kB
import streamlit as st
import urllib.parse
# πŸ“ž NAMBARKA WHATSAPP-KA IYO EVC PLUS
DUKAANKA_WHATSAPP = "252612693555"
EVC_PLUS_NUMBER = "0612693555" # Halkaan ku beddel nambarkaaga saxda ah ee lacagta laguugu soo dirayo
# βš™οΈ Qurxinta dusha sare ee Website-ka
st.set_page_config(page_title="Baidoa Ice Cream", page_icon="🍦", layout="centered")
# πŸ›’ Bilaabidda nidaamka dambiilaha (Session State)
if 'cart' not in st.session_state:
st.session_state.cart = []
if 'page' not in st.session_state:
st.session_state.page = "home"
if 'customer_info' not in st.session_state:
st.session_state.customer_info = {}
# πŸ“‹ XOGTA ALAABTA IYO QIIMAHA
ALAABTA = {
"JALLAATADA TUFKA": [
{"magac": "Tuf Wayn", "qiimo": 0.50, "dhadhan": ["Vanilla", "Chocolate", "Strawberry", "Mango"]},
{"magac": "Tuf Normal", "qiimo": 0.25, "dhadhan": ["Vanilla", "Chocolate", "Strawberry"]},
{"magac": "Tuf Yar", "qiimo": 0.20, "dhadhan": ["Vanilla", "Chocolate"]}
],
"JALLAATADA CAAGA": [
{"magac": "Caag Weyn (Max)", "qiimo": 1.00, "dhadhan": ["Mix Flavors", "Chocolate Special", "Strawberry"]},
{"magac": "Caag Weyn", "qiimo": 0.75, "dhadhan": ["Vanilla", "Chocolate", "Strawberry"]},
{"magac": "Caag Yar (Normal)", "qiimo": 0.50, "dhadhan": ["Vanilla", "Chocolate"]},
{"magac": "Caag Yar", "qiimo": 0.25, "dhadhan": ["Vanilla", "Chocolate"]}
],
"MACMACAAN & TOORTO": [
{"magac": "Toorto Weyn (Celebration)", "qiimo": 25.00, "dhadhan": ["Chocolate", "Vanilla", "Red Velvet"]},
{"magac": "Toorto Normal", "qiimo": 15.00, "dhadhan": ["Chocolate", "Vanilla"]},
{"magac": "Toorto Yar / Jab", "qiimo": 4.00, "dhadhan": ["Chocolate", "Vanilla"]}
],
"MACMACAAN CUSUB": [
{"magac": "Lotus Cake", "qiimo": 3.00, "dhadhan": ["Original Lotus"]},
{"magac": "Basbuuso", "qiimo": 2.50, "dhadhan": ["Traditional"]},
{"magac": "Cupcake", "qiimo": 2.50, "dhadhan": ["Chocolate", "Vanilla", "Strawberry"]},
{"magac": "Normal Cake", "qiimo": 1.50, "dhadhan": ["Vanilla", "Marble"]}
]
}
# 🏠 1. BOGGA HORE (HOME PAGE)
if st.session_state.page == "home":
st.markdown("<h1 style='text-align: center; color: #d63384;'>🍦 Baidoa Ice Cream πŸŽ‚</h1>", unsafe_allow_html=True)
st.markdown("<p style='text-align: center; color: #6c757d;'>Ku soo dhowaada dukaanka rasmiga ah! Dooro alaabtaada, bixi lacagta, kuna hel 20 daqiiqo gudahood.</p>", unsafe_allow_html=True)
st.write("---")
# Badhan weyn oo la rigo dambiilaha haddii wax ku jiraan
if len(st.session_state.cart) > 0:
st.warning(f"πŸ›’ Dambiilahaaga waxaa ku jira {len(st.session_state.cart)} alaab ah.")
if st.button("U Gudub Gaadhiga Wax Iibsiga βž”"):
st.session_state.page = "cart"
st.rerun()
# Muujinta Qaybaha Alaabta
for qaybta, alaabooyinka inoo yaal iney ku jiraan iney muuqdaan:
st.markdown(f"### πŸ“ {qaybta}")
cols = st.columns(2)
for idx, item in enumerate(alaabooyinka):
with cols[idx % 2]:
st.info(f"*{item['magac']}* β€” ${item['qiimo']:.2f}")
# Doorashada Dhadhanka iyo Tirada
dhadhan_dooro = st.selectbox(f"Dhadhanka ({item['magac']})", item['dhadhan'], key=f"flavor_{item['magac']}_{idx}")
tirada = st.number_input(f"Tirada ({item['magac']})", min_value=1, max_value=20, value=1, key=f"qty_{item['magac']}_{idx}")
if st.button(f"βž• Ku Dar Gaadhiga", key=f"btn_{item['magac']}_{idx}"):
st.session_state.cart.append({
"magac": item['magac'],
"qiimo": item['qiimo'],
"dhadhan": dhadhan_dooro,
"tirada": tirada,
"subtotal": item['qiimo'] * tirada
})
st.success(f"βœ… {tirada} {item['magac']} ({dhadhan_dooro}) waa lagu daray gaadhiga!")
st.rerun()
st.write("---")
# πŸ›’ 2. GAADHIGA WAX IIBSIGA (CART PAGE)
elif st.session_state.page == "cart":
st.markdown("## πŸ›’ Gaadhiga Wax Iibsiga (Cart)")
if not st.session_state.cart:
st.error("Gaadhigaagu waa maran yahay hadda!")
if st.button("⬅️ Ku noqo Bogga Hore"):
st.session_state.page = "home"
st.rerun()
else:
wadarta_lacagta = 0
for idx, c in enumerate(st.session_state.cart):
col1, col2, col3 = st.columns([3, 2, 1])
with col1:
st.write(f"*{c['magac']}* ({c['dhadhan']})")
with col2:
st.write(f"{c['tirada']} x ${c['qiimo']:.2f} = *${c['subtotal']:.2f}*")
with col3:
if st.button("❌", key=f"del_{idx}"):
st.session_state.cart.pop(idx)
st.rerun()
wadarta_lacagta += c['subtotal']
st.write("---")
st.markdown(f"### πŸ’° Wadarta Guud: *${wadarta_lacagta:.2f}*")
col_btn1, col_btn2 = st.columns(2)
with col_btn1:
if st.button("⬅️ Sii Wad Adeegsiga"):
st.session_state.page = "home"
st.rerun()
with col_btn2:
if st.button("Sii Wad Dalabka (Macluumaadka) βž”"):
st.session_state.page = "info"
st.rerun()
# πŸ‘€ 3. MACLUUMAADKA MACMIILKA (CUSTOMER INFO)
elif st.session_state.page == "info":
st.markdown("## πŸ‘€ Macluumaadka Geynta Dalabka")
st.write("Fadlan qor faahfaahintaada si looguugu soo qaado jalaatada:")
magaca = st.text_input("Magacaaga oo Dhammaystiran:")
telefoonka = st.text_input("Lambarka Telefoonkaaga:")
cinwaanka = st.text_area("Cinwaanka Guriga / Goobta Shaqada (Geeynta):")
col_btn1, col_btn2 = st.columns(2)
with col_btn1:
if st.button("⬅️ Ku noqo Gaadhiga"):
st.session_state.page = "cart"
st.rerun()
with col_btn2:
if st.button("U Gudub Lacag-bixinta βž”"):
if magaca and telefoonka and cinwaanka:
st.session_state.customer_info = {
"magac": magaca,
"tel": telefoonka,
"cinwaan": cinwaanka
}
st.session_state.page = "payment"
st.rerun()
else:
st.error("Fadlan buuxi dhammaan meelaha banaan!")
# πŸ’³ 4. LACAG-BIXINTA (PAYMENT)
elif st.session_state.page == "payment":
st.markdown("## πŸ’³ Tallaabada Lacag-bixinta (Amniga Dalabka)")
st.warning("⚠️ Dalabkaaga lama xaqiijin doono ilaa aad lacagta bixiso si looga hortago dalabyada beenta ah!")
wadarta_lacagta = sum(c['subtotal'] for c in st.session_state.cart)
st.markdown(f"### πŸ’΅ Wadarta Lacagta Laga rabo: *${wadarta_lacagta:.2f}*")
st.info(f"ℹ️ *Habka Lacag bixinta:\nFadlan ku dir *${wadarta_lacagta:.2f}* lambarka **EVC Plus: {EVC_PLUS_NUMBER}*")
st.write("---")
st.write("Markaad lacagta dirto ka dib, guji batoonka hoose si aad ugu xaqiijiso WhatsApp-ka oo dukaanka laguugu diyaariyo:")
# Diyaarinta qoraalka WhatsApp-ka ku dhacaya
alaab_qoraal = ""
for c in st.session_state.cart:
alaab_qoraal += f"- {c['tirada']} {c['magac']} ({c['dhadhan']}) = ${c['subtotal']:.2f}\n"
info = st.session_state.customer_info
qoraalka_whatsapp = (
f"🚨 DALAB CUSUB (BAIDOA ICE CREAM) 🚨\n\n"
f"πŸ‘€ Macmiilka: {info['magac']}\n"
f"πŸ“ž Tel: {info['tel']}\n"
f"πŸ“ Cinwaanka: {info['cinwaan']}\n\n"
f"πŸ›’ Alaabta la doortay:\n{alaab_qoraal}\n"
f"πŸ’° Wadarta Guud: ${wadarta_lacagta:.2f}\n"
f"βœ… Xaaladda Lacagta: Waxaan hadda ku soo diray EVC Plus! Fadlan ii xaqiiji oo iisoo rida."
)
url_encoded_text = urllib.parse.quote(qoraalka_whatsapp)
whatsapp_link = f"https://wa.me/{DUKAANKA_WHATSAPP}?text={url_encoded_text}"
col_btn1, col_btn2 = st.columns(2)
with col_btn1:
if st.button("⬅️ Beddel Macluumaadka"):
st.session_state.page = "info"
st.rerun()
with col_btn2:
# Batoonka rasmiga ah ee u diraya WhatsApp-ka oo diiwaangelinaya dalabka
st.markdown(f'''
<a href="{whatsapp_link}" target="_blank" style="text-decoration: none;">
<div style="background-color: #25D366; color: white; text-align: center; padding: 10px; font-weight: bold; border-radius: 5px; cursor: pointer;">
βœ… BIXI HADDA & XAQIIJI DALABKA
</div>
</a>
''', unsafe_allow_html=True)
if st.button("πŸ’‘ Markaad gujiso kadib, halkan riix si aad u nadiifiso dambiilaha"):
st.session_state.cart = []
st.session_state.page = "home"
st.success("Dalabkaaga waa la diiwaangeliyey! Waxaa laguugu soo dirayaa 20 daqiiqo gudahood. Waad ku mahadsan tahay doorashada Baidoa Ice Cream! 🍦")
st.rerun()