diff --git a/Customer.cpp b/Customer.cpp index 3f54a89..465d9b4 100644 --- a/Customer.cpp +++ b/Customer.cpp @@ -1,6 +1,7 @@ #include "headers/Customer.h" #include +// moet aangepast worden om een verhicle_type toe te voegen Customer::Customer(int id_, string name_, string card_code_) : id { id_ } , name { name_ } @@ -8,17 +9,22 @@ Customer::Customer(int id_, string name_, string card_code_) { } +/* +creert een park_time object met start time= nu, en voegt t toe aan een vector. + */ void Customer::clock_in( int s_id) { Park_time pt{id, s_id}; park_instances.push_back(pt); } + +// edit de laatste park_time obj in de vector zodat de end_time = now. void Customer::clock_out(int s_id){ park_instances[park_instances.size()-1].clock_out(id, s_id); } - +// monthly report generation. moet nog een manier vinden om af te bakenen. void Customer::gen_monthly(){ std::cout << "NAME: " << name << " card code: " << card_code << "\n"; std::cout << "-------------------------------------------------\n"; diff --git a/Park_spot.cpp b/Park_spot.cpp index 95d1928..929a7d4 100644 --- a/Park_spot.cpp +++ b/Park_spot.cpp @@ -6,6 +6,7 @@ Park_spot::Park_spot(int id_){ taken = false; } +// clock in en out, calls de juist(in/out) van de customer aan de hand van internal state van taken void Park_spot::clock(Customer* c_customer){ if (!taken){ parked = c_customer; diff --git a/headers/Customer.h b/headers/Customer.h index 9567bbe..e86d015 100644 --- a/headers/Customer.h +++ b/headers/Customer.h @@ -9,11 +9,24 @@ using std::vector; using std::string; +// enum type is basically een manier om categories te representen als een integer in the background, maar om t in code +// aan te geven als de actual category. +enum class Verhicle_type { + "small" = 1, + "medium" = 2, + "large" = 3, +}; + /* db repr of Customer int id (not null, auto increment) string name (not nulll) string card_code (not null) +Dit moet nog verandert worden. + +card code zou eigenlijk een randomly generated string moeten zijn, die je bv. op een ndf card zou opslaan en zo zou +authenticaten bij je parking spot. We kunnen dit ipv of samen met een password gebruiken. +clock in en out creeert en compleet een park_time object. Voegt het toe aan een vector. */ @@ -26,9 +39,10 @@ public: void clock_out(int s_id); // void gen_weekly(); TODO: this void gen_monthly(); - Customer(int id_, string name_, string card_code_); + Customer(int id_, string name_); private: + Verhicle_type verhicle; vector park_instances; }; diff --git a/headers/Park_spot.h b/headers/Park_spot.h index 83239ee..4085152 100644 --- a/headers/Park_spot.h +++ b/headers/Park_spot.h @@ -6,6 +6,8 @@ db representation: int id not null bool taken not null int customer_id (null) (many to one, foreign key, whatever) + +Dit representeert een parkeerplaats. Het heeft als internal state alleen dat t bezet is of niet. */ class Park_spot { diff --git a/headers/Park_time.h b/headers/Park_time.h index a35067f..435234a 100644 --- a/headers/Park_time.h +++ b/headers/Park_time.h @@ -16,6 +16,9 @@ int spot_id (not null, many to one or something like that) int duration datetime start (not null) datetime end + +Dit is gewoon een record van hoe lang, wie en waar iemand parkeert. Basically, een component van +de internal state van customer. */ class Park_time { diff --git a/main.cpp b/main.cpp index dc08007..c7574c7 100644 --- a/main.cpp +++ b/main.cpp @@ -3,23 +3,42 @@ #include // to make pausing work, not sure if i need chrono, or this, or both #include + +/* +Code strucure like this: +als class declarations in /headers/class_naam.h, en definitions van de member objects in /class_naam.cpp +elke klas in zn eigen file omdat ik incomplete class declarations wilt tegengaan, omdat ik ze niet goed begrijp. +En header/source split om multiple definition errors tegen te gaan. + +Park_spot representeert een parkeermeter bij elke parkeer spot. +Een customer is een customer. +Park time is een object die reffereert naar parkspot en customer, basically een record die zegt dat +een customer voor x tijd geparkeert heeft bij spot x, enz. + +De client clockt in en uit bij een spot. + */ + void Wait(int sec) +/* +a wait function where 1 sec represents 1 hour irl. + */ { std::this_thread::sleep_for(seconds { sec }); } using std::cout; + int main() { std::vector spots { 1, 2, 3, 4, 5 }; std::vector customers { - { 1, "Sagar Ram", "eddgh" }, - { 2, "Shaq", "wsdfwefgv" }, - { 3, "Josh", "WDFGWEF" }, - { 4, "Stefano", "EDGGERG" } + { 1, "Sagar Ram" }, + { 2, "Shaq" }, + { 3, "Josh" }, + { 4, "Stefano" } }; spots[1].clock(&customers[3]); // stefano parks at spot 2