@startuml left to right direction actor "Работник фабрики" as FactoryWorker actor "Работник склада" as WarehouseWorker actor "Работник магазина" as ShopWorker actor "Администратор" as Admin note left of FactoryWorker Отвечает за регистрацию произведенных товаров и организацию поставок end note note left of WarehouseWorker Управляет складскими операциями: приемка, хранение, отгрузка end note note left of ShopWorker Формирует заявки на товары и отслеживает доступность end note note left of Admin Управляет пользователями, ролями и привязкой сотрудников к складам end note rectangle "Система управления складом" { usecase "Управление товарами" as UC_ManageProducts usecase "Управление категориями" as UC_ManageCategories usecase "Регистрация поставки" as UC_RegisterDelivery usecase "Добавить товар" as UC_AddProduct usecase "Управление ассортиментом" as UC_Assortment usecase "Редактировать товар" as UC_EditProduct usecase "Указать фабрику" as UC_SetFactory usecase "Указать дату поставки" as UC_SetDeliveryDate usecase "Указать товары" as UC_SetDeliveryProducts usecase "Указать склад" as UC_SetWarehouse usecase "Подтверждение приемки" as UC_AcceptDelivery usecase "Подтвердить количество" as UC_ConfirmQuantity usecase "Проверить товар" as UC_CheckProduct usecase "Обновить остатки" as UC_UpdateStock usecase "Обработка отгрузки" as UC_ProcessShipment usecase "Зафиксировать дату отгрузки" as UC_SetShipmentDate usecase "Подтвердить отгрузку" as UC_ConfirmShipment usecase "Просмотр остатков" as UC_ViewStock usecase "Просмотр по категориям" as UC_ViewByCategories usecase "Просмотр по складам" as UC_ViewByWarehouses usecase "Запрос отгрузки" as UC_RequestShipment usecase "Указать магазин" as UC_SetShop usecase "Указать количество" as UC_SetQuantity usecase "Выбрать товары" as UC_SelectProducts usecase "Управление пользователями" as UC_ManageUsers usecase "Создать пользователя" as UC_CreateUser usecase "Редактировать пользователя" as UC_EditUser usecase "Логически удалить пользователя" as UC_DeleteUser usecase "Управление ролями" as UC_ManageRoles usecase "Назначить роль" as UC_AssignRole usecase "Управление привязкой к складам" as UC_ManageWarehouseLinks usecase "Привязать пользователя к складу" as UC_LinkUserWarehouse usecase "Отвязать пользователя от склада" as UC_UnlinkUserWarehouse usecase "Назначить владельца склада" as UC_AssignWarehouseOwner } FactoryWorker --> UC_ManageProducts FactoryWorker --> UC_ManageCategories FactoryWorker --> UC_RegisterDelivery WarehouseWorker --> UC_AcceptDelivery WarehouseWorker --> UC_ProcessShipment WarehouseWorker --> UC_ViewStock ShopWorker --> UC_ViewStock ShopWorker --> UC_RequestShipment Admin --> UC_ManageUsers Admin --> UC_ManageRoles Admin --> UC_ManageWarehouseLinks UC_ManageProducts ..> UC_AddProduct : include UC_ManageProducts ..> UC_Assortment : include UC_ManageProducts ..> UC_EditProduct : include UC_RegisterDelivery ..> UC_SetFactory : include UC_RegisterDelivery ..> UC_SetDeliveryDate : include UC_RegisterDelivery ..> UC_SetDeliveryProducts : include UC_RegisterDelivery ..> UC_SetWarehouse : include UC_AcceptDelivery ..> UC_ConfirmQuantity : include UC_AcceptDelivery ..> UC_CheckProduct : include UC_AcceptDelivery ..> UC_SetWarehouse : include UC_AcceptDelivery ..> UC_UpdateStock : include UC_ProcessShipment ..> UC_UpdateStock : include UC_ProcessShipment ..> UC_SetShipmentDate : include UC_ProcessShipment ..> UC_ConfirmShipment : include UC_ViewStock ..> UC_ViewByCategories : include UC_ViewStock ..> UC_ViewByWarehouses : include UC_RequestShipment ..> UC_SetShop : include UC_RequestShipment ..> UC_SetQuantity : include UC_RequestShipment ..> UC_SelectProducts : include UC_RequestShipment ..> UC_SetWarehouse : include UC_ManageUsers ..> UC_CreateUser : include UC_ManageUsers ..> UC_EditUser : include UC_ManageUsers ..> UC_DeleteUser : include UC_ManageRoles ..> UC_AssignRole : include UC_ManageWarehouseLinks ..> UC_LinkUserWarehouse : include UC_ManageWarehouseLinks ..> UC_UnlinkUserWarehouse : include UC_ManageWarehouseLinks ..> UC_AssignWarehouseOwner : include @enduml