@startuml
title IDEF0 Декомпозиция первого уровня (A0)\nМодуль «Главная»

rectangle "A0\nГлавная страница\nЛК" {

  rectangle "A1\nАутентификация\nи инициализация\nпользователя" as A1
  rectangle "A2\nЗагрузка и\nагрегация данных\nсети" as A2
  rectangle "A3\nРасчет\nпоказателей\nэффективности" as A3
  rectangle "A4\nФормирование\nвизуальных блоков\nглавной страницы" as A4
  rectangle "A5\nОтображение\nи обновление\nинтерфейса" as A5

  A1 --> A2
  A2 --> A3
  A3 --> A4
  A4 --> A5
}

' Inputs
rectangle "Учетные\ndанные" as I1
rectangle "Данные ТА\nи продаж" as I2
rectangle "Новости\nфранчайзера" as I3

I1 --> A1
I2 --> A2
I3 --> A4

' Controls
rectangle "Политики\nбезопасности" as C1
rectangle "Бизнес-\nправила" as C2
rectangle "Роль\nпользователя" as C3

C1 -down-> A1
C2 -down-> A3
C3 -down-> A5

' Outputs
rectangle "Активная\nсессия\nпользователя" as O1
rectangle "Агрегированные\nпоказатели" as O2
rectangle "Главная\nстраница с\nблоками" as O3

A1 --> O1
A3 --> O2
A5 --> O3

' Mechanisms
rectangle "JWT\nмодуль" as M1
rectangle "БД" as M2
rectangle "Backend\nAPI" as M3
rectangle "UI\nкомпоненты" as M4

M1 -up-> A1
M2 -up-> A2
M3 -up-> A3
M4 -up-> A5

@enduml
