44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
/*
|
|
File: ComboPackage.h
|
|
Description: Declares the ComboPackage class which represents a service package with a unique ID, package name, discount percentage, associated services, and status in the Vehicle Service Management System.
|
|
Author: Trenser
|
|
Date: 19-May-2026
|
|
*/
|
|
|
|
#pragma once
|
|
#include <string>
|
|
#include "Map.h"
|
|
#include "Vector.h"
|
|
#include "Enums.h"
|
|
|
|
class Service;
|
|
|
|
class ComboPackage
|
|
{
|
|
private:
|
|
static int m_uid;
|
|
std::string m_id;
|
|
std::string m_packageName;
|
|
double m_discountPercentage;
|
|
util::Vector<std::string> m_serviceIDs;
|
|
util::Map<std::string, Service*> m_services;
|
|
util::State m_status;
|
|
public:
|
|
ComboPackage();
|
|
ComboPackage(const std::string& packageName, double discountPercentage, const util::Map<std::string, Service*>& services);
|
|
ComboPackage(const std::string& id, const std::string& packageName, double discountPercentage, const util::Vector<std::string>& serviceIDs, util::State status);
|
|
const std::string& getId() const;
|
|
const std::string& getPackageName() const;
|
|
double getDiscountPercentage() const;
|
|
const util::Vector<std::string>& getServiceIDs() const;
|
|
const util::Map<std::string, Service*>& getServices() const;
|
|
util::State getState() const;
|
|
void setId(const std::string& id);
|
|
void setPackageName(const std::string& packageName);
|
|
void setDiscountPercentage(double discountPercentage);
|
|
void setServices(const util::Map<std::string, Service*>& services);
|
|
void setState(util::State status);
|
|
std::string serialize() const;
|
|
static ComboPackage* deserialize(const std::string&);
|
|
static std::string getHeaders();
|
|
}; |