Parkmanne/headers/Customer.h

53 lines
1.3 KiB
C
Raw Normal View History

2019-05-28 16:46:55 +00:00
#ifndef CUSTOMER_H
#define CUSTOMER_H
#pragma once
2019-06-26 18:12:23 +00:00
#include "../thirdparty/SQLiteCpp/include/SQLiteCpp/SQLiteCpp.h"
2019-05-28 16:46:55 +00:00
#include "Park_time.h"
2019-06-26 18:12:23 +00:00
#include <ctime>
#include <random>
#include <string>
#include <vector>
2019-05-28 16:46:55 +00:00
using std::string;
2019-06-26 18:12:23 +00:00
using std::vector;
2019-05-28 16:46:55 +00:00
2019-06-26 18:12:23 +00:00
// enum type is basically een manier om categories te representen als een integer in the background, maar om t in code
2019-06-20 11:08:02 +00:00
// aan te geven als de actual category.
enum class Verhicle_type {
2019-06-24 23:15:30 +00:00
small = 1,
medium = 2,
large = 3,
2019-06-20 11:08:02 +00:00
};
2019-05-28 16:46:55 +00:00
/*
db repr of Customer
int id (not null, auto increment)
string name (not nulll)
string card_code (not null)
2019-06-26 18:12:23 +00:00
Dit moet nog verandert worden.
2019-06-20 11:08:02 +00:00
2019-06-26 18:12:23 +00:00
card code zou eigenlijk een randomly generated string moeten zijn, die je bv. op een ndf card zou opslaan en zo zou
2019-06-20 11:08:02 +00:00
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.
2019-05-28 16:46:55 +00:00
*/
class Customer {
2019-06-26 18:12:23 +00:00
public:
2019-05-28 16:46:55 +00:00
int id;
string name;
string card_code;
void clock_in(int s_id);
void clock_out(int s_id);
2019-05-28 16:57:33 +00:00
// void gen_weekly(); TODO: this
2019-05-28 16:46:55 +00:00
void gen_monthly();
2019-06-26 18:12:23 +00:00
Customer(int id_, string name_, Verhicle_type verhicle_);
void update_db(SQLite::Database& database);
2019-05-28 16:46:55 +00:00
2019-06-26 18:12:23 +00:00
private:
2019-06-20 11:08:02 +00:00
Verhicle_type verhicle;
2019-05-28 16:46:55 +00:00
vector<Park_time> park_instances;
2019-06-26 18:12:23 +00:00
string gen_cardcode();
2019-05-28 16:46:55 +00:00
};
#endif // CUSTOMER_H