Files
Training-Team2-Zenvy-Jan26/Trenser.Zenvy/Trenser.Zenvy/models/Booking.h
T

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;
};