diff options
Autocommit at 02.05.2022 @ 21:55
3 files changed, 22 insertions, 1 deletions
| -rw-r--r-- | src/EventSystem/Event.cpp | 17 | ||||
| -rw-r--r-- | src/EventSystem/Reservation.h | 3 | ||||
| -rw-r--r-- | src/EventSystem/StatusCodes.h | 3 |
diff --git a/src/EventSystem/Event.cpp b/src/EventSystem/Event.cpp index 607f225..f0a3f75 100644 --- a/src/EventSystem/Event.cpp +++ b/src/EventSystem/Event.cpp @@ -1,4 +1,5 @@ #include "Event.h" +#include "Reservation.h" #include "StatusCodes.h" Event::Event() : Event(nullptr, "", DateTime()) {} @@ -25,3 +26,19 @@ StatusCode Event::cancelReservation(const Ticket& ticket) { reservations.removeAt(ind); return Success; } + +StatusCode Event::buyTicket(const Ticket& ticket) { + if (tickets.contain(ticket)) return E_TicketAlreadyBought; + if (reservations.contain(ticket)) return E_TicketAlreadyReserved; + + tickets.insert(ticket); + return Success; +} + +StatusCode Event::buyTicketFromReservation(const Reservation& reservation, const char* password) { + if (!reservations.contain(reservation)) return E_ReservationDoesNotExist; + + if (!reservation.checkPassword(password)) return E_WrongReservationPassword; + + reservations.removeAt +} diff --git a/src/EventSystem/Reservation.h b/src/EventSystem/Reservation.h index 34ca1f1..a73e719 100644 --- a/src/EventSystem/Reservation.h +++ b/src/EventSystem/Reservation.h @@ -15,6 +15,9 @@ public: Reservation(const Ticket& ticket); Reservation(const Ticket& ticket, const char* password, const char* note); + bool checkPassword(const char* password) const; + const Ticket& get_ticket() const; + void read(std::istream& istr); void write(std::ostream& ostr) const; int compare(const Reservation& other) const; diff --git a/src/EventSystem/StatusCodes.h b/src/EventSystem/StatusCodes.h index 95d6b3c..afbdd6b 100644 --- a/src/EventSystem/StatusCodes.h +++ b/src/EventSystem/StatusCodes.h @@ -15,7 +15,8 @@ enum StatusCode { E_TicketAlreadyBought, E_TicketAlreadyReserved, - E_WrongTicketPassword, + E_ReservationDoesNotExist, + E_WrongReservationPassword, }; #endif |
