Add documentation headers across system modules

This commit is contained in:
Jissin Mathew
2026-05-22 12:49:14 +05:30
parent 340f00deef
commit 500eb95f12
44 changed files with 1879 additions and 4 deletions
@@ -1,3 +1,11 @@
/*
File: AuthenticationManagementService.h
Description: Declares the AuthenticationManagementService class which manages user authentication in the Vehicle Service Management System.
Provides functionality for login, logout, password change, and retrieving the currently authenticated user.
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "DataStore.h"
@@ -1,3 +1,11 @@
/*
File: InventoryManagementService.h
Description: Declares the InventoryManagementService class which manages inventory operations in the Vehicle Service Management System.
Provides functionality to retrieve, add, and remove inventory items, send low stock alerts, and handle notifications using the Observer pattern.
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "Map.h"
@@ -1,3 +1,11 @@
/*
File: NotificationManagementService.h
Description: Declares the NotificationManagementService abstract class which defines the contract for managing notifications in the Vehicle Service Management System.
Implements the Subject interface and provides pure virtual methods for sending notifications and managing user subscriptions (attach/detach).
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "Subject.h"
@@ -1,3 +1,12 @@
/*
File: PaymentManagementService.cpp
Description: Implements the PaymentManagementService class which manages payment-related operations
in the Vehicle Service Management System. Provides functionality for attaching/detaching observers,
sending notifications, and issuing payment reminders based on invoice status and thresholds.
Author: Trenser
Date: 20-May-2026
*/
#include <stdexcept>
#include "PaymentManagementService.h"
#include "Invoice.h"
@@ -10,6 +19,14 @@
util::Map<std::string, User*> PaymentManagementService::m_observers{};
/*
Function: attach
Description: Attaches a user as an observer to the PaymentManagementService for receiving notifications.
Parameters:
- user: Pointer to the User object to be attached.
Returns:
- void
*/
void PaymentManagementService::attach(User* user)
{
if (user)
@@ -22,6 +39,14 @@ void PaymentManagementService::attach(User* user)
}
}
/*
Function: detach
Description: Detaches a user from the observer list of the PaymentManagementService.
Parameters:
- user: Pointer to the User object to be detached.
Returns:
- void
*/
void PaymentManagementService::detach(User* user)
{
if (user)
@@ -34,6 +59,18 @@ void PaymentManagementService::detach(User* user)
}
}
/*
Function: sendNotification
Description: Sends a notification to a user if they are registered as an observer.
Parameters:
- user: Pointer to the User object to receive the notification.
- title: Title of the notification.
- message: Message content of the notification.
Returns:
- void
Throws:
- std::runtime_error if notification creation fails.
*/
void PaymentManagementService::sendNotification(User* user, const std::string& title, const std::string& message)
{
if (user)
@@ -60,6 +97,15 @@ void PaymentManagementService::sendNotification(User* user, const std::string& t
}
}
/*
Function: sendPaymentReminders
Description: Iterates through all invoices in the datastore and sends payment reminders to customers
whose invoices are pending beyond the configured threshold duration.
Parameters:
- None
Returns:
- void
*/
void PaymentManagementService::sendPaymentReminders()
{
auto& invoicesMap = m_dataStore.getInvoices();
@@ -1,3 +1,12 @@
/*
File: PaymentManagementService.h
Description: Declares the PaymentManagementService class which manages payment operations in the Vehicle Service Management System.
Provides functionality to generate invoices, retrieve customer invoices, complete payments, send payment reminders,
and handle notifications using the Observer pattern.
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "Map.h"
@@ -1,3 +1,12 @@
/*
File: ServiceManagementService.cpp
Description: Implements the ServiceManagementService class which manages service-related operations
in the Vehicle Service Management System. Provides functionality for attaching/detaching observers
and sending notifications to users regarding service events.
Author: Trenser
Date: 20-May-2026
*/
#include <stdexcept>
#include "ServiceManagementService.h"
#include "User.h"
@@ -6,6 +15,14 @@
util::Map<std::string, User*> ServiceManagementService::m_observers{};
/*
Function: attach
Description: Attaches a user as an observer to the ServiceManagementService for receiving notifications.
Parameters:
- user: Pointer to the User object to be attached.
Returns:
- void
*/
void ServiceManagementService::attach(User* user)
{
if (user)
@@ -18,6 +35,14 @@ void ServiceManagementService::attach(User* user)
}
}
/*
Function: detach
Description: Detaches a user from the observer list of the ServiceManagementService.
Parameters:
- user: Pointer to the User object to be detached.
Returns:
- void
*/
void ServiceManagementService::detach(User* user)
{
if (user)
@@ -30,6 +55,18 @@ void ServiceManagementService::detach(User* user)
}
}
/*
Function: sendNotification
Description: Sends a notification to a user if they are registered as an observer.
Parameters:
- user: Pointer to the User object to receive the notification.
- title: Title of the notification.
- message: Message content of the notification.
Returns:
- void
Throws:
- std::runtime_error if notification creation fails.
*/
void ServiceManagementService::sendNotification(User* user, const std::string& title, const std::string& message)
{
if (user)
@@ -1,3 +1,12 @@
/*
File: ServiceManagementService.h
Description: Declares the ServiceManagementService class which manages services, combo packages, service bookings, and job cards
in the Vehicle Service Management System. Provides functionality to purchase services or packages, create and remove
services, assign and complete jobs, cancel bookings, and handle notifications using the Observer pattern.
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "Map.h"
@@ -1,8 +1,27 @@
/*
File: UserManagementService.cpp
Description: Implements the UserManagementService class which manages user-related operations
in the Vehicle Service Management System. Provides functionality for retrieving user notifications
and deleting notifications by ID.
Author: Trenser
Date: 20-May-2026
*/
#include <stdexcept>
#include "UserManagementService.h"
#include "User.h"
#include "Vector.h"
/*
Function: getUserNotifications
Description: Retrieves all notifications associated with a given user ID.
Parameters:
- userID: The unique ID of the user whose notifications are to be retrieved.
Returns:
- util::Vector<Notification*> containing all notifications for the user.
Throws:
- std::runtime_error if no user is found with the given UserID or if the User object is invalid.
*/
util::Vector<Notification*> UserManagementService::getUserNotifications(const std::string& userID)
{
auto& usersMap = m_dataStore.getUsers();
@@ -28,6 +47,17 @@ util::Vector<Notification*> UserManagementService::getUserNotifications(const st
}
}
/*
Function: deleteNotification
Description: Deletes a specific notification associated with a given user ID.
Parameters:
- notificationID: The unique ID of the notification to be deleted.
- userID: The unique ID of the user whose notification is to be deleted.
Returns:
- void
Throws:
- std::runtime_error if no user is found with the given UserID or if no notification is found with the given NotificationID.
*/
void UserManagementService::deleteNotification(const std::string& notificationID, const std::string& userID)
{
auto& usersMap = m_dataStore.getUsers();
@@ -1,3 +1,11 @@
/*
File: UserManagementService.h
Description: Declares the UserManagementService class which manages user-related operations in the Vehicle Service Management System.
Provides functionality to create, update, retrieve, and remove users, as well as manage user notifications.
Author: Trenser
Date: 19-May-2026
*/
#pragma once
#include <string>
#include "Map.h"
@@ -17,7 +25,7 @@ public:
void updateUserDetails(const std::string& userID, const std::string& email, const std::string& phone);
util::Map<std::string, User*> getUsers();
util::Map<std::string, User*> getUsers(util::UserType type);
User* getUser(const std::string& userID);
User* getUser (const std::string& userID);
void removeUser(const std::string& userID);
util::Vector<Notification*> getUserNotifications(const std::string& userID);
void deleteNotification(const std::string& notificationID, const std::string& userID);