Загрузка данных


@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