40 lines
1.4 KiB
C++
40 lines
1.4 KiB
C++
/*
|
|
* File: Booking.h
|
|
* Description: The Booking class represents a time?based booking with employee and team details and supports duration calculation.
|
|
* Author: Trenser
|
|
* Created: 31-Mar-2026
|
|
*/
|
|
#pragma once
|
|
#include <string>
|
|
#include "Team.h"
|
|
#include "Timestamp.h"
|
|
|
|
class Booking
|
|
{
|
|
private:
|
|
static int m_uid;
|
|
std::string m_id;
|
|
util::Timestamp m_startTime;
|
|
util::Timestamp m_endTime;
|
|
std::string m_employeeId;
|
|
Team* m_team;
|
|
public:
|
|
Booking() : m_id("BK" + std::to_string(++m_uid)), m_startTime(), m_endTime(), m_employeeId(""), m_team(nullptr) {}
|
|
Booking(const util::Timestamp& startTime,
|
|
const util::Timestamp& endTime,
|
|
const std::string& employeeId,
|
|
Team* team)
|
|
: m_id("BK" + std::to_string(++m_uid)), m_startTime(startTime), m_endTime(endTime), m_employeeId(employeeId), m_team(team) {}
|
|
const std::string& getBookingId() const;
|
|
const util::Timestamp& getStartTime() const;
|
|
const util::Timestamp& getEndTime() const;
|
|
const std::string& getEmployeeId() const;
|
|
Team* getTeam() const;
|
|
void setBookingId(const std::string& id);
|
|
void setStartTime(const util::Timestamp& startTime);
|
|
void setEndTime(const util::Timestamp& endTime);
|
|
void setEmployeeId(const std::string& employeeId);
|
|
void setTeam(Team* team);
|
|
double getDurationInHours() const;
|
|
double getDurationInMinutes() const;
|
|
}; |