@startuml
left to right direction
skinparam actorStyle awesome
' ============================================
' Актёры
' ============================================
actor "Гость\n(неавторизованный)" as Guest
actor "Пользователь\n(авторизованный)" as User
actor "Администратор" as Admin
' ============================================
' Прецеденты — Гость
' ============================================
rectangle "Функции гостя" #LightYellow {
usecase "Регистрация" as UC1
usecase "Вход в аккаунт" as UC2
usecase "Просмотр списка моделей" as UC3
usecase "Расчёт износа\nрасходников" as UC4
usecase "Просмотр отзывов" as UC5
usecase "Просмотр FAQ,\nКонтактов, О нас" as UC6
usecase "Отправка запроса\nв поддержку" as UC7
}
' ============================================
' Прецеденты — Авторизованный пользователь
' ============================================
rectangle "Функции авторизованного пользователя" #LightCyan {
usecase "Выход из аккаунта" as UC8
usecase "Управление гаражом\n(добавить/удалить авто)" as UC9
usecase "Ведение журнала замен\n(новые и Б/У детали)" as UC10
usecase "Расчёт с учётом\nистории замен" as UC11
usecase "Оставить / удалить\nотзыв" as UC12
usecase "Скачать отчёт\nо расходниках" as UC13
usecase "Отправить отчёт\nна email" as UC14
usecase "Скачать историю\nзапросов" as UC15
usecase "Отправить историю\nна email" as UC16
usecase "Изменить имя,\nemail, пароль" as UC17
usecase "Очистить историю\nзапросов" as UC18
}
' ============================================
' Прецеденты — Администратор
' ============================================
rectangle "Функции администратора" #LightSalmon {
usecase "Управление\nпользователями" as UC19
usecase "Бан / разбан\nпользователя" as UC20
usecase "Повысить / понизить\nроль" as UC21
usecase "Добавить / удалить\nмодель" as UC22
usecase "Управление\nрасходниками" as UC23
usecase "Просмотр\nобращений" as UC24
usecase "Ответ\nна обращение" as UC25
}
' ============================================
' Связи: актёр → прецеденты
' ============================================
Guest --> UC1
Guest --> UC2
Guest --> UC3
Guest --> UC4
Guest --> UC5
Guest --> UC6
Guest --> UC7
User --> UC8
User --> UC9
User --> UC10
User --> UC11
User --> UC12
User --> UC13
User --> UC14
User --> UC15
User --> UC16
User --> UC17
User --> UC18
Admin --> UC19
Admin --> UC24
Admin --> UC25
' ============================================
' Связи наследования
' ============================================
Guest <|-- User : авторизация
User <|-- Admin : назначение роли
' ============================================
' Связи включения (include)
' ============================================
UC19 ..> UC20 : <<include>>
UC19 ..> UC21 : <<include>>
UC19 ..> UC22 : <<include>>
UC19 ..> UC23 : <<include>>
@enduml