Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services / EventSystem.h
diff options
context:
space:
mode:
1 files changed, 46 insertions, 0 deletions
-rw-r--r--src/Services/EventSystem.h46
diff --git a/src/Services/EventSystem.h b/src/Services/EventSystem.h
new file mode 100644
index 0000000..4eeac61
--- /dev/null
+++ b/src/Services/EventSystem.h
@@ -0,0 +1,46 @@
+#ifndef HEADER_EVENTSYSTEM
+#define HEADER_EVENTSYSTEM
+
+#include "../List/OrderedList.hpp"
+#include "../Date/Date.h"
+
+#include "Event.h"
+#include "StatusCodes.h"
+
+class EventSystem {
+ OrderedList<Event> events;
+ unsigned indSoonestUpcoming;
+
+ void updateSoonestUpcoming();
+ unsigned indexOfEvent(const Date& date);
+ unsigned indexOfEvent(const char* name, const Date& date);
+
+public:
+ EventSystem();
+ EventSystem(const Event* events, unsigned eventCount);
+
+ StatusCode createEvent(const Hall* hall, String name, Date date);
+ StatusCode cancelEvent(const char* name, const Date& date);
+
+ StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, unsigned seatRow, unsigned seatColumn);
+ StatusCode reserveTicket(const char* name, const Date& date, const char* password, const char* note, const Ticket& ticket);
+
+ StatusCode cancelTicketReservation(const char* name, const Date& date, unsigned seatRow, unsigned seatColumn);
+ StatusCode cancelTicketReservation(const char* name, const Date& date, const Ticket& ticket);
+
+ StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat);
+ StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket);
+ StatusCode buyTicket(const char* name, const Date& date, unsigned row, unsigned seat, const char* password);
+ StatusCode buyTicket(const char* name, const Date& date, const Ticket& ticket, const char* password);
+
+ const Hall* queryEventHall(const char* name, const Date& date);
+ OrderedList<Ticket> queryTickets(const char* name, const Date& date);
+ OrderedList<Reservation> queryReservations(const char* name, const Date& date);
+
+ void queryMostVisited();
+ void queryInsufficientlyVisited();
+ void reportBoughtTickets(Date start, Date end, unsigned hall);
+ void reportReservations(unsigned eventIndex);
+};
+
+#endif