#ifndef CUSTOMER_H #define CUSTOMER_H #pragma once #include "../thirdparty/SQLiteCpp/include/SQLiteCpp/SQLiteCpp.h" #include "Park_time.h" #include #include #include #include using std::string; using std::vector; // 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, }; /* card code is een randomly generated string moeten zijn, die je bv. op een nfc 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. */ class Customer { public: Customer(string name_, Verhicle_type verhicle_, SQLite::Database& db); Customer(int id_, string name_, string card_code_, Verhicle_type verhicle_, vector instances); // needed to construct from db // potentially: add a destructor that calls update_db() before being destroyed int id; string name; string card_code; void clock_in(int s_id); void clock_out(int s_id); void update_db(SQLite::Database& database); void delete_db(SQLite::Database& database); // void gen_weekly(); TODO: this void gen_monthly(); private: Verhicle_type verhicle; vector park_instances; string gen_cardcode(); void save_db(SQLite::Database& database); int auto_increment_db(SQLite::Database& database); }; #endif // CUSTOMER_H