Diagrama de estados da Classe "Administrador"
stateDiagram-v2
direction TB
[*] --> SendoCriado : cadastrar(ID, login, senha)
SendoCriado --> Registrado : [dados válidos] / salvar()
SendoCriado --> [*] : [dados inválidos]
state Registrado {
[*] --> Deslogado
Deslogado --> Autenticando : login(login, senha)
state Autenticando {
[*] --> Validando
Validando --> Conectado : [sucesso]
Validando --> Deslogado : [falha]
}
state Conectado {
[*] --> AguardandoAcao
AguardandoAcao --> GerenciandoCinema : cadastrarCinema()
GerenciandoCinema --> AguardandoAcao
AguardandoAcao --> GerenciandoSala : gerenciarSala()
GerenciandoSala --> AguardandoAcao
AguardandoAcao --> GerenciandoFilme : gerenciarFilme()
GerenciandoFilme --> AguardandoAcao
AguardandoAcao --> GerenciandoSessao : gerenciarSessao()
GerenciandoSessao --> AguardandoAcao
AguardandoAcao --> GerandoRelatorio : gerarRelatorio()
GerandoRelatorio --> AguardandoAcao
}
Conectado --> Deslogado : logout()
}
Registrado --> [*] : excluirConta()
Diagrama de estados da Classe "Cinema"
stateDiagram-v2
direction TB
[*] --> EmCadastro: Administrador inicia "Cadastrar Cinema"
state EmCadastro {
[*] --> PreenchendoDados: Exibir formulário
PreenchendoDados --> Validando: confirmarCadastro()
Validando --> PreenchendoDados: [dados inválidos ou duplicados] / Notificar erro
}
EmCadastro --> Ativo: [dados válidos] / salvarDados()
state Ativo {
[*] --> SemSalas
SemSalas --> ComSalas: cadastrarSala()
ComSalas --> ComSalas: gerenciarSalas()
ComSalas --> SemSalas: [todas salas removidas]
}
Ativo --> GerandoRelatorio: gerarRelatorio()
GerandoRelatorio --> Ativo: [concluído]
Ativo --> [*]: Remover Cinema
Diagrama de estados da Classe "Sala"
stateDiagram-v2
direction TB
[*] --> SendoCriada: Administrador seleciona "Cadastrar Sala"
state SendoCriada {
[*] --> DefinindoCapacidade: Informar número de assentos
DefinindoCapacidade --> ValidandoEstrutura: Salvar configurações
ValidandoEstrutura --> DefinindoCapacidade: [capacidade inválida]
}
SendoCriada --> Disponivel: [dados validados] / salvarSala()
state Disponivel {
[*] --> Ociosa: Sem sessões agendadas
Ociosa --> EmUso: criarSessao()
EmUso --> Ociosa: [sessão encerrada]
}
Disponivel --> ConfigurandoAssentos: gerenciarMelhoresAssentos()
ConfigurandoAssentos --> Disponivel: salvarConfiguracao()
%% Múltiplos caminhos para o fim do fluxo
Disponivel --> [*]: Remover Sala do Cinema
SendoCriada --> [*]: Cancelar Cadastro
Diagrama de estados da Classe "Sessao"
stateDiagram-v2
direction TB
[*] --> Criada: Administrador solicita criação
state Criada {
[*] --> Validando: validarDisponibilidade()
Validando --> Agendada: [Horário livre na Sala]
}
Agendada --> Publicada: publicarSessao()
state Publicada {
[*] --> Disponivel
Disponivel --> Disponivel: reservarIngresso()
Disponivel --> Lotada: [Capacidade atingida]
Lotada --> Disponivel: cancelarReserva()
}
Publicada --> EmExibicao: iniciarSessao() / AncineAPI.informarDados()
EmExibicao --> Finalizada: encerrarSessao()
Finalizada --> Registrada: comporRelatorio()
Registrada --> [*]
Diagrama de estados da Classe "Filme"
stateDiagram-v2
direction TB
[*] --> SendoCadastrado: Administrador inicia "Cadastrar Filme"
state SendoCadastrado {
[*] --> PreenchendoDados: informarDados()
PreenchendoDados --> Validando: [confirmar]
Validando --> PreenchendoDados: [dados incompletos]
}
SendoCadastrado --> Disponivel: salvarFilme()
state Disponivel {
[*] --> EmCartaz: Vincular a uma Sessão Ativa
EmCartaz --> ForaDeCartaz: [Nenhuma sessão ativa pendente]
ForaDeCartaz --> EmCartaz: criarSessao()
}
Disponivel --> [*]: removerFilme()
Diagrama de estados da Classe "Relatorio"
stateDiagram-v2
direction TB
[*] --> SendoGerado: Administrador solicita consolidado
state SendoGerado {
[*] --> ColetandoDados: acessarDadosSessoes()
ColetandoDados --> CalculandoFinanceiro: processarVendasIngressos()
CalculandoFinanceiro --> Formatando: estruturarLayout()
}
SendoGerado --> Pronto: concluirGeracao()
state Pronto {
[*] --> VisualizacaoDisponivel
VisualizacaoDisponivel --> Exportado: exportarPDF() / imprimir()
}
Pronto --> [*]: Fechar Relatório
Diagrama de estados da Classe "Ancine API"
stateDiagram-v2
direction TB
[*] --> Ociosa
Ociosa --> ProcessandoEnvio : informarDados(dadosSessao)
state ProcessandoEnvio {
[*] --> Formatando
Formatando --> Transmitindo : enviar()
Transmitindo --> ValidandoProtocolo : receberConfirmacao()
}
ProcessandoEnvio --> Finalizada : [sucesso / falha]
Finalizada --> Ociosa : finalizarConexao()
Ociosa --> [*]
Diagrama de estados da Classe "Cliente"
stateDiagram-v2
direction TB
[*] --> ValidandoEmail : cadastrar(email)
state ValidandoEmail {
[*] --> CodigoEnviado : enviarEmail(codigo)
CodigoEnviado --> EmailConfirmado : confirmarEmail(codigo)
EmailConfirmado --> PreenchendoDados : [codigo valido]
PreenchendoDados --> ContaAtiva : salvar()
CodigoEnviado --> [*] : [cancelar/codigo invalido]
}
ContaAtiva --> GerenciandoFidelidade : aderirProgramaFidelidade(dadosCartao)
GerenciandoFidelidade --> ContaAtiva : [isFidelidade = true]
state ContaAtiva {
[*] --> Disponivel
state InteracaoIngresso {
[*] --> Opcoes
Opcoes --> Reservando : reservarIngresso()
Reservando --> Pagando : realizarPagamento()
Pagando --> Opcoes : [sucesso]
Opcoes --> Visualizando : visualizarIngressos()
Visualizando --> Exportando : exportarIngresso()
Exportando --> Opcoes
Opcoes --> Cancelando : cancelarReserva()
Cancelando --> Opcoes
}
Disponivel --> InteracaoIngresso
InteracaoIngresso --> Disponivel : fecharMenu()
}
ContaAtiva --> [*] : [excluirConta]
Diagrama de estados da Classe "Ingresso"
stateDiagram-v2
direction TB
[*] --> Disponivel : gerar_ingresso()
state Disponivel {
[*] --> AguardandoSelecao : do / aguardar_selecao()
}
Disponivel --> Reservado : reservar() / reservarIngresso()
state Reservado {
[*] --> Bloqueado : do / bloquear_assento()
}
Reservado --> ProcessandoPagamento : confirmarPagamento() / realizarPagamento()
state ProcessandoPagamento {
[*] --> Verificando : do / verificar_transacao()
}
ProcessandoPagamento --> Reservado : [pagamento_recusado]
ProcessandoPagamento --> Pago : [pagamento_aprovado] / emitir_recibo()
state Pago {
[*] --> VerificandoTipo : do / verificar_tipo_ingresso()
}
Pago --> Confirmado : [inteira]
Pago --> ValidandoDocumento : [meia_entrada] / solicitar_doc()
state ValidandoDocumento {
[*] --> EmAnalise : do / validar_documento()
}
ValidandoDocumento --> Confirmado : [doc_valido]
ValidandoDocumento --> Cancelado : [doc_invalido]
Confirmado --> [*] : visualizarIngresso() / exportarIngresso()
Reservado --> Cancelado : cancelarReserva()
Cancelado --> Disponivel : do / liberar_assento()
Diagrama de estados da Classe "Pagamento API"
stateDiagram-v2
direction TB
[*] --> Processando : realizarPagamento()
Processando: Validando Cartão
Processando: do / verificar_validade_cartao()
Processando --> Cobranca : realizar_cobranca() [cartao_valido]
Processando --> Falha : [cartao_invalido]
Cobranca: Efetuando Débito
Cobranca: do / processar_transacao()
Cobranca --> Sucesso : confirmar_deferimento() [pagamento_confirmado]
Cobranca --> Falha : [saldo_insuficiente]
Sucesso: Pagamento Aprovado
Sucesso --> [*]
Falha: Pagamento Recusado
Falha --> [*]
Diagrama de estados da Classe "Validador de Documentos"
stateDiagram-v2
[*] --> Processando
Processando: Analise de Documento
Processando: do / verificar_autenticidade()
Processando --> Resultado : finalizar_analise() [analise_concluida]
Processando --> Final : rejeitar_documento() [documento_invalido]
Resultado: Resultado da Analise
Resultado: do / emitir_veredito()
Resultado --> Final : concluir_processo()
Final: Processo Encerrado
Final --> [*]