#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 children; public: Task(const int& id, const string& name, const string& description, const vector& children); Task(); explicit Task(const AddTask& t); ostream& write(ostream& stream) const; int get_id() const; bool is_active() const; string get_name() const; string get_description() const; vector get_children() const; static Vector read_children(istream &is); 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