epr24pr5-ojanssen2/Manager.h

62 lines
1.5 KiB
C
Raw Normal View History

#pragma once
#include "std_lib_inc.h"
#include "User.h"
#include "Task.h"
#include "Assignment.h"
#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H
using models::User;
using models::Task;
using models::Assignment;
namespace util
{
class Manager
{
private:
static Manager* INSTANCE;
map<int, User*> users;
map<int, Task*> tasks;
vector<Assignment*> assignments;
int user_id_index;
int task_id_index;
string filename;
Manager();
void update_user_id_index();
void update_task_id_index();
public:
Manager(const Manager&) = delete;
Manager& operator=(const Manager&) = delete;
static Manager* get_instance();
void save();
void update_indexes();
int get_user_id();
int get_task_id();
vector<User*> get_users() const;
vector<Task*> get_tasks() const;
vector<Assignment*> get_assignments();
2025-02-10 00:25:28 +01:00
User* get_user(int id);
Task* get_task(int id);
vector<Assignment *> get_assignments_for_user(int user_id);
vector<Assignment *> get_assignments_for_task(int task_id);
bool assignment_exists(int user_id, int task_id);
void add_user(User* user);
void add_task(Task* task);
void add_assignment(Assignment* as);
2025-02-10 00:25:28 +01:00
void del_user(int id);
void del_task(int id);
void del_assignment(Assignment& as);
};
} // util
#endif // ENVIRONMENT_H