"""Сторінка входу — форма → authenticate() → session_state."""
from __future__ import annotations

import streamlit as st

from services.auth import authenticate

st.title("Вхід до системи")

if st.session_state.get("user_role"):
    st.success(f"Ви увійшли як {st.session_state['user_email']} "
               f"(роль: {st.session_state['user_role']})")
    if st.button("Вийти"):
        for key in ("user_role", "user_email", "user_company_id"):
            st.session_state.pop(key, None)
        st.rerun()
else:
    with st.form("login_form"):
        email = st.text_input("Email")
        password = st.text_input("Пароль", type="password")
        submitted = st.form_submit_button("Увійти")

    if submitted:
        user = authenticate(email, password)
        if user is not None:
            st.session_state.user_role = user.role
            st.session_state.user_email = user.email
            st.session_state.user_company_id = user.company_id
            st.rerun()
        else:
            st.error("Невірний email або пароль")  # загальне — не розкриваємо причину
