2025-02-09 19:58:55 +01:00
|
|
|
#pragma once
|
2025-02-09 12:34:07 +01:00
|
|
|
#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;
|
|
|
|
|
2025-02-09 19:58:55 +01:00
|
|
|
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:
|
2025-02-09 23:22:43 +01:00
|
|
|
Manager(const Manager&) = delete;
|
|
|
|
Manager& operator=(const Manager&) = delete;
|
|
|
|
static Manager* get_instance();
|
2025-02-09 19:58:55 +01:00
|
|
|
|
|
|
|
void save();
|
|
|
|
void update_indexes();
|
|
|
|
int get_user_id();
|
|
|
|
int get_task_id();
|
|
|
|
|
2025-02-09 21:14:26 +01:00
|
|
|
vector<User*> get_users() const;
|
|
|
|
vector<Task*> get_tasks() const;
|
2025-02-09 19:58:55 +01:00
|
|
|
vector<Assignment*> get_assignments();
|
|
|
|
|
|
|
|
User* get_user(const int& id);
|
|
|
|
Task* get_task(const int& id);
|
|
|
|
vector<Assignment*> get_assignments_for_user(const int& id);
|
|
|
|
bool assignment_exists(const int& user_id, const int& task_id);
|
|
|
|
|
2025-02-09 21:14:26 +01:00
|
|
|
void add_user(User* user);
|
|
|
|
void add_task(Task* task);
|
|
|
|
void add_assignment(Assignment* as);
|
2025-02-09 19:58:55 +01:00
|
|
|
|
|
|
|
void del_user(const int& id);
|
|
|
|
void del_task(const int& id);
|
2025-02-09 21:14:26 +01:00
|
|
|
void del_assignment(Assignment& as);
|
2025-02-09 12:34:07 +01:00
|
|
|
};
|
2025-02-09 19:58:55 +01:00
|
|
|
} // util
|
2025-02-09 12:34:07 +01:00
|
|
|
#endif // ENVIRONMENT_H
|