epr24pr5-ojanssen2/Task.h
2025-02-09 22:30:03 +01:00

58 lines
1.3 KiB
C++

#pragma once
#include "std_lib_inc.h"
#include "Util.h"
#ifndef TASK_H
#define TASK_H
using util::Util;
namespace models
{
class AddTask;
class Task
{
private:
int id;
string name;
string description;
vector<int> children;
public:
Task(const int& id, const string& name, const string& description, const vector<int>& children);
Task();
explicit Task(const AddTask& t);
ostream& write(ostream& stream) const;
istream& read(istream&);
int get_id() const;
string get_name() const;
string get_description() const;
vector<int> get_children() const;
friend ostream& operator<<(ostream& os, const Task& t);
friend istream& operator>>(istream& is, Task& t);
};
class AddTask : public Task
{
private:
public:
AddTask();
AddTask(Task& t);
friend ostream& operator<<(ostream& os, const AddTask& t);
friend istream& operator>>(istream& is, AddTask& t);
};
ostream& operator<<(ostream& os, const AddTask& t);
istream& operator>>(istream& is, AddTask& t);
ostream& operator<<(ostream& os, const Task& t);
istream& operator>>(istream& is, Task& t);
} // models
#endif // TASK_H