📌 Objetivo
Modelar as interações entre os componentes do sistema (View, Controller, Service, RepositoryFactory, Repository e Persistência) para os principais casos de uso do Sistema de Gestão para Rede de Padarias, validando o funcionamento conforme a arquitetura em camadas definida no projeto.
Todos os diagramas seguem o fluxo arquitetural adotado:
View
↓
Controller
↓
Service
↓
RepositoryFactory
↓
Repository
↓
Persistência (Memória ou SQLite)
A RepositoryFactory fornece a implementação adequada dos repositórios, permitindo utilizar persistência em memória ou banco de dados SQLite sem impactar as demais camadas da aplicação.
1️⃣ Diagrama de Sequência – Cadastrar Unidade
sequenceDiagram
actor Usuario
participant View
participant UnidadeController
participant UnidadeService
participant RepositoryFactory
participant UnidadeRepository
participant Persistencia
Usuario->>View: Informar dados da unidade
View->>UnidadeController: cadastrar(dados)
UnidadeController->>UnidadeService: cadastrar(dados)
UnidadeService->>RepositoryFactory: getUnidadeRepository()
RepositoryFactory-->>UnidadeService: UnidadeRepository
UnidadeService->>UnidadeRepository: salvar(unidade)
UnidadeRepository->>Persistencia: salvar()
Persistencia-->>UnidadeRepository: confirmação
UnidadeRepository-->>UnidadeService: sucesso
UnidadeService-->>UnidadeController: sucesso
UnidadeController-->>View: confirmação
View-->>Usuario: Unidade cadastrada
Descrição do fluxo: o usuário realiza o cadastro de uma nova unidade da rede de padarias.
2️⃣ Diagrama de Sequência – Cadastrar Insumo
Descrição do fluxo: o usuário realiza o cadastro de um novo insumo.
sequenceDiagram
actor Usuario
participant View
participant InsumoController
participant InsumoService
participant RepositoryFactory
participant InsumoRepository
participant Persistencia
Usuario->>View: Informar dados do insumo
View->>InsumoController: cadastrar(dados)
InsumoController->>InsumoService: cadastrar(dados)
InsumoService->>RepositoryFactory: getInsumoRepository()
RepositoryFactory-->>InsumoService: InsumoRepository
InsumoService->>InsumoRepository: salvar(insumo)
InsumoRepository->>Persistencia: salvar()
Persistencia-->>InsumoRepository: confirmação
InsumoRepository-->>InsumoService: sucesso
InsumoService-->>InsumoController: sucesso
InsumoController-->>View: confirmação
View-->>Usuario: Insumo cadastrado**3️⃣ Diagrama de Sequência – Registrar Movimentação de Estoque**
3️⃣ Diagrama de Sequência – Registrar Movimentação de Estoque
Descrição do fluxo: o usuário registra uma movimentação de entrada ou saída de um insumo no estoque.
sequenceDiagram
actor Usuario
participant View
participant EstoqueController
participant EstoqueService
participant RepositoryFactory
participant InsumoRepository
participant Persistencia
Usuario->>View: Registrar movimentação
View->>EstoqueController: registrarMovimentacao()
EstoqueController->>EstoqueService: registrarMovimentacao()
EstoqueService->>RepositoryFactory: getInsumoRepository()
RepositoryFactory-->>EstoqueService: InsumoRepository
EstoqueService->>InsumoRepository: atualizarQuantidade()
InsumoRepository->>Persistencia: atualizar()
Persistencia-->>InsumoRepository: confirmação
InsumoRepository-->>EstoqueService: sucesso
EstoqueService-->>EstoqueController: sucesso
EstoqueController-->>View: confirmação
View-->>Usuario: Movimentação registrada
4️⃣ Diagrama de Sequência – Listar Unidades
Descrição do fluxo: o usuário solicita a listagem de todas as unidades cadastradas na rede de padarias.
sequenceDiagram
actor Usuario
participant View
participant UnidadeController
participant UnidadeService
participant RepositoryFactory
participant UnidadeRepository
participant Persistencia
Usuario->>View: Listar unidades
View->>UnidadeController: listarUnidades()
UnidadeController->>UnidadeService: listarTodos()
UnidadeService->>RepositoryFactory: getUnidadeRepository()
RepositoryFactory-->>UnidadeService: UnidadeRepository
UnidadeService->>UnidadeRepository: listarTodos()
UnidadeRepository->>Persistencia: buscarTodas()
Persistencia-->>UnidadeRepository: lista
UnidadeRepository-->>UnidadeService: lista
UnidadeService-->>UnidadeController: lista
UnidadeController-->>View: lista
View-->>Usuario: Exibir unidades
5️⃣ Diagrama de Sequência – Listar Insumos
Descrição do fluxo: o usuário solicita a listagem de todos os insumos cadastrados no sistema.
sequenceDiagram
actor Usuario
participant View
participant InsumoController
participant InsumoService
participant RepositoryFactory
participant InsumoRepository
participant Persistencia
Usuario->>View: Listar insumos
View->>InsumoController: listarInsumos()
InsumoController->>InsumoService: listarTodos()
InsumoService->>RepositoryFactory: getInsumoRepository()
RepositoryFactory-->>InsumoService: InsumoRepository
InsumoService->>InsumoRepository: listarTodos()
InsumoRepository->>Persistencia: buscarTodos()
Persistencia-->>InsumoRepository: lista
InsumoRepository-->>InsumoService: lista
InsumoService-->>InsumoController: lista
InsumoController-->>View: lista
View-->>Usuario: Exibir insumos