-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
72 lines (57 loc) · 1.88 KB
/
main.py
File metadata and controls
72 lines (57 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
"""
main.py — Ponto de entrada do Sistema Help Desk.
"""
import sys
from rich.console import Console
from rich.prompt import Prompt
from rich.panel import Panel
from rich.text import Text
from database import inicializar_banco
from usuarios import menu_usuarios
from chamados import menu_chamados
from relatorios import menu_relatorios
console = Console()
def exibir_cabecalho() -> None:
"""Exibe o cabeçalho estilizado do sistema."""
texto = Text()
texto.append(" HELP", style="bold white")
texto.append("DESK", style="bold cyan")
texto.append(" • Sistema de Chamados de Suporte", style="dim white")
console.print(Panel(
texto,
border_style="cyan",
padding=(0, 2),
))
def exibir_menu_principal() -> None:
"""Exibe as opções do menu principal."""
console.print("\n[bold cyan]╔══ Menu Principal ══╗[/bold cyan]")
console.print(" [yellow]1[/yellow] — Gerenciar Usuários")
console.print(" [yellow]2[/yellow] — Gerenciar Chamados")
console.print(" [yellow]3[/yellow] — Relatórios")
console.print(" [yellow]0[/yellow] — Sair")
def main() -> None:
"""Loop principal do sistema."""
inicializar_banco()
console.clear()
exibir_cabecalho()
rotas = {
"1": menu_usuarios,
"2": menu_chamados,
"3": menu_relatorios,
}
while True:
exibir_menu_principal()
escolha = Prompt.ask("\n Opção", default="0").strip()
if escolha == "0":
console.print("\n[dim]Sistema encerrado. Até logo![/dim]\n")
sys.exit(0)
elif escolha in rotas:
rotas[escolha]()
else:
console.print("[red]Opção inválida.[/red]")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
console.print("\n\n[dim]Interrompido pelo usuário.[/dim]\n")
sys.exit(0)