= UseCase001 - Registering a user **Initiating actor:** Unregistered Guest {{{#!div style="text-align: justify; width: 100%;" The goal of this use case is to allow a new visitor to create a permanent account within the system by providing their personal details. Upon successful registration, the system creates a new record in the User table and assigns the user to the Consumer role, enabling them to access personalized features like wishlists and order history. }}} == Scenario {{{#!div style="text-align: justify; width: 100%;" 1. User provides their required registration details, including a email, password and username, and submits the registration form. 2. System validates that the email is unique and that all required fields meet the necessary formatting standards. {{{#!div style="margin-left: 20px;" {{{ SELECT COUNT(*) FROM USERS WHERE email = 'user@example.com'; }}} }}} 3. System creates a new entry in the User table with a unique user_id and the current date_created. {{{#!div style="margin-left: 20px;" {{{ INSERT INTO USERS (user_id, email, password, username, date_created) VALUES (7, 'user@example.com', 'hashed_password', 'NewUser', CURRENT_DATE); }}} }}} 4. System initializes a corresponding entry in the Consumer table, setting the points_collected to zero and establishing the one-to-one relationship with the new user_id. {{{#!div style="margin-left: 20px;" {{{ INSERT INTO CONSUMERS (user_id, points_collected) VALUES (7, 0); }}} }}} 5. System confirms the successful account creation and automatically logs the user in. }}}