Setup codebase
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
#include "Map.h"
|
||||
#include <string>
|
||||
#include "Enums.h"
|
||||
|
||||
class Service;
|
||||
class ComboPackage;
|
||||
class InventoryItem;
|
||||
class ServiceBooking;
|
||||
class User;
|
||||
class JobCard;
|
||||
class Invoice;
|
||||
class Notification;
|
||||
|
||||
class Controller
|
||||
{
|
||||
public:
|
||||
bool login(const std::string& username, const std::string& password);
|
||||
void logout();
|
||||
void changePassword(const std::string& newPassword);
|
||||
void createCustomer(const std::string& username, const std::string& password, const std::string& email, const std::string& phone);
|
||||
User* const getAuthenticatedUser();
|
||||
void createTechnician(const std::string& username, const std::string& password, const std::string& email, const std::string& phone);
|
||||
void updateUserDetails(const std::string& email, const std::string& phone);
|
||||
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, InventoryItem*> getInventoryItems();
|
||||
InventoryItem* getInventoryItem(const std::string& inventoryItemID);
|
||||
void addInventoryItem(const std::string& partName, int quantity, double price);
|
||||
void removeInventoryItem(const std::string& inventoryItemID);
|
||||
util::Map<std::string, ServiceBooking*> getServiceBookings();
|
||||
util::Map<std::string, ServiceBooking*> getServiceBookingsByUser();
|
||||
util::Map<std::string, User*> getUsers();
|
||||
util::Map<std::string, User*> getUsers(util::UserType type);
|
||||
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*> getJobCardsByUser();
|
||||
void completeJob(const std::string& jobID);
|
||||
void removeUser(const std::string& userID);
|
||||
void createComboPackage(const std::string& name, const util::Vector<std::string>& serviceIDs, double discountPercentage);
|
||||
void removeComboPackage(const std::string& comboPackageID);
|
||||
util::Map<std::string, Invoice*> getInvoicesByUser();
|
||||
void completePayment(const std::string& invoiceID, util::PaymentMode paymentMode);
|
||||
util::Vector<Notification*> getNotifications();
|
||||
void deleteNotification(const std::string& notificationID);
|
||||
void configureNotifications(const std::string& userID, bool paymentNotifications, bool serviceNotifications);
|
||||
void runSystemChecks();
|
||||
};
|
||||
Reference in New Issue
Block a user