= !UseCase: Додавање нов корисник = == Актер == Admin (Администратор) == Цел == Администраторот сака да додаде нов корисник во системот Stock Master. == Предуслови == * Администраторот мора да биде најавен во системот * Администраторот мора да има Admin привилегии == Главен тек == * Администраторот го отвора Dashboard-от [[Image(dashboard1.png, 800px)]] * Администраторот го избира "Settings" од менито * Администраторот кликнува на "Users" од паѓачкото мени [[Image(dashboard2.png, 800px)]] * Системот го прикажува екранот "User Management" со листа на сите корисници [[Image(dashboard3.png, 800px)]] * Администраторот кликнува на копчето "+ Add New User" [[Image(dashboard4.png, 800px)]] * Системот го прикажува екранот за додавање нов корисник * Администраторот ги внесува потребните информации: * Username (пр: ana_sales) * Full Name (пр: Ана аневска) * Email (пр: ana123@outlook.com) * Password (пр: secure123) * Role - избира од паѓачко мени (Admin, Inventory Manager, Sales Personnel, Warehouse Staff) * Администраторот го штиклира полето "Active" за да го активира корисникот * Администраторот кликнува на копчето "Save" * Системот ги валидира податоците (username и email мора да се уникатни) * Системот го зачувува новиот корисник во базата * Системот прикажува порака за успех [[Image(dashboard5.png, 800px)]] * Системот го враќа администраторот на листата со корисници каде што новиот корисник е прикажан [[Image(dashboard6.png, 800px)]] == Алтернативен тек == * Доколку username веќе постои, се прикажува грешка: "Username already exists" * Доколку email веќе постои, се прикажува грешка: "Email already exists" * Доколку некое задолжително поле е празно, се прикажува грешка: "Please fill all required fields" * Доколку администраторот кликне "Cancel", се враќа на листата со корисници без зачувување == Улоги на корисници == * '''Admin:''' Full system access - целосна контрола на системот, управување со корисници и пристап до извештаи * '''Inventory Manager:''' Manage products and stock - додавање и уредување на производи, следење на залихи и управување со добавувачи * '''Sales Personnel:''' Process sales - продажни операции и управување со клиенти * '''Warehouse Staff:''' Manage warehouse operations - операции за влез и излез од магацин и физичка проверка на залихите == SQL Команди == {{{#!sql -- 1. Проверка дали username е уникатно SELECT COUNT(*) FROM users WHERE username = 'ana_sales'; -- 2. Проверка дали email е уникатно SELECT COUNT(*) FROM users WHERE email = 'ana123@outlook.com'; -- 3. Додавање нов корисник INSERT INTO users (username, password, full_name, email, role, is_active) VALUES ('ana_sales', 'hashed_password', 'Ana Anevska', 'ana123@outlook.com', 'Sales Personnel', true); -- 4. Прикажување на сите корисници SELECT user_id, username, full_name, email, role, is_active, created_at FROM users ORDER BY created_at DESC; }}}