404d217504
- Remove FileManager and related file-based persistence logic - Remove obsolete observer persistence utilities - Remove unused service APIs and includes - Delete duplicate DataStore mutex stubs - Perform general dead-code cleanup
48 lines
2.3 KiB
C++
48 lines
2.3 KiB
C++
/*
|
|
File: ServiceManagementService.h
|
|
Description: Header file declaring the ServiceManagementService class, which manages
|
|
services, combo packages, job cards, and service bookings. Inherits from
|
|
NotificationManagementService to handle notifications.
|
|
Author: Trenser
|
|
Date:19-May-2026
|
|
*/
|
|
|
|
#pragma once
|
|
#include <string>
|
|
#include "Map.h"
|
|
#include "NotificationManagementService.h"
|
|
#include "DataStore.h"
|
|
|
|
class Service;
|
|
class ComboPackage;
|
|
class ServiceBooking;
|
|
class JobCard;
|
|
|
|
class ServiceManagementService : public NotificationManagementService
|
|
{
|
|
private:
|
|
DataStore& m_dataStore;
|
|
static util::Map<std::string, User*> m_observers;
|
|
public:
|
|
ServiceManagementService() : m_dataStore(DataStore::getInstance()) {}
|
|
util::Map<std::string, Service*> getServices();
|
|
util::Map<std::string, ComboPackage*> getComboPackages();
|
|
void purchaseService(const util::Vector<std::string>& serviceIDs, const std::string& vehicleNumber, const std::string& vehicleBrand, const std::string& vehicleModel);
|
|
void purchaseComboPackage(const std::string& comboPackageID, const std::string& vehicleNumber, const std::string& vehicleBrand, const std::string& vehicleModel);
|
|
util::Map<std::string, ServiceBooking*> getServiceBookings();
|
|
util::Map<std::string, ServiceBooking*> getServiceBookings(const std::string& customerID);
|
|
ServiceBooking* getServiceBooking(const std::string& serviceID);
|
|
void createJobCard(const std::string& bookingID, const std::string& technicianID, const std::string& serviceID);
|
|
void createService(const std::string& name, const util::Vector<std::string>& inventoryItemIDs, double laborCost);
|
|
void removeService(const std::string& serviceID);
|
|
util::Map<std::string, JobCard*> getJobCards(const std::string& technicianID);
|
|
void updateJobStatus(const std::string& jobID);
|
|
void cancelCustomerServiceBookings(const std::string& customerID);
|
|
void cancelTechnicianJobs(const std::string& technicianID);
|
|
void createComboPackage(const std::string& packageName, const util::Vector<std::string>& serviceIDs, double discountPercentage);
|
|
void removeComboPackage(const std::string& comboPackageID);
|
|
void sendNotification(User* user, const std::string& title, const std::string& message) override;
|
|
void attach(User* user) override;
|
|
void detach(User* user) override;
|
|
};
|