Untitled
unknown
plain_text
3 months ago
3.7 kB
10
Indexable
import streamlit as st
import pandas as pd
from datetime import date
st.set_page_config(page_title="Hotel Demo (Stateless)", page_icon="🏨", layout="wide")
quartos = [
{"id": 101, "numero": "101", "tipo": "Standard", "preco": 150.00},
{"id": 102, "numero": "201", "tipo": "Luxo", "preco": 300.00},
{"id": 103, "numero": "305", "tipo": "Suíte", "preco": 550.00},
]
clientes = [
{"id": 1, "nome": "Ana Souza", "email": "[email protected]"},
{"id": 2, "nome": "Bruno Lima", "email": "[email protected]"},
]
reservas = [
{"id": 1, "cliente": "Ana Souza", "quarto": "101", "checkin": date(2023, 10, 1), "checkout": date(2023, 10, 5)}
]
st.title("🏨 Hotel Manager (Modo Simples)")
st.caption("Nota: Como não há banco de dados, as alterações são perdidas ao recarregar a página ou mudar de aba.")
tab_quartos, tab_clientes, tab_reservas = st.tabs(["🛌 Quartos", "👥 Clientes", "📅 Reservas"])
with tab_quartos:
st.header("Gerenciar Quartos")
col_form, col_lista = st.columns([1, 2])
with col_form:
st.subheader("Novo Quarto")
with st.form("form_quarto"):
num = st.text_input("Número do Quarto")
tipo = st.selectbox("Categoria", ["Standard", "Luxo", "Suíte"])
preco = st.number_input("Valor Diária R$", value=100.0)
submitted = st.form_submit_button("Salvar")
if submitted:
novo = {"id": len(quartos)+1, "numero": num, "tipo": tipo, "preco": preco}
quartos.append(novo)
st.success("Quarto adicionado visualmente!")
with col_lista:
st.subheader("Lista Atual")
st.dataframe(pd.DataFrame(quartos), use_container_width=True)
quarto_del = st.selectbox("Remover Quarto (ID)", [q['id'] for q in quartos])
if st.button("Excluir Quarto"):
quartos = [q for q in quartos if q['id'] != quarto_del]
st.warning("Quarto removido da visualização atual!")
st.dataframe(pd.DataFrame(quartos), use_container_width=True)
with tab_clientes:
st.header("Gerenciar Clientes")
col_form, col_lista = st.columns([1, 2])
with col_form:
st.subheader("Novo Cliente")
with st.form("form_cliente"):
nome = st.text_input("Nome Completo")
email = st.text_input("E-mail")
if st.form_submit_button("Cadastrar"):
clientes.append({"id": len(clientes)+1, "nome": nome, "email": email})
st.success("Cliente listado abaixo!")
with col_lista:
st.subheader("Base de Clientes")
st.dataframe(pd.DataFrame(clientes), use_container_width=True)
with tab_reservas:
st.header("Nova Reserva")
st.info("⚠️ Atenção: O formulário abaixo só vê os quartos/clientes originais do código, pois os novos são apagados ao mudar de aba.")
with st.form("form_reserva"):
c1, c2 = st.columns(2)
cli_selecionado = c1.selectbox("Cliente", [c['nome'] for c in clientes])
quarto_selecionado = c2.selectbox("Quarto", [q['numero'] for q in quartos])
d_in = c1.date_input("Check-in", date.today())
d_out = c2.date_input("Check-out", date.today())
if st.form_submit_button("Confirmar Reserva"):
nova_reserva = {
"id": len(reservas)+1,
"cliente": cli_selecionado,
"quarto": quarto_selecionado,
"checkin": d_in,
"checkout": d_out
}
reservas.append(nova_reserva)
st.success("Reserva gerada!")
st.divider()
st.subheader("Mapa de Reservas")
st.dataframe(pd.DataFrame(reservas), use_container_width=True)
Editor is loading...
Leave a Comment