File indexing completed on 2025-02-16 04:59:37

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Kevin Ottens <ervin@kde.org>
0003  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004  */
0005 
0006 
0007 #ifndef DOMAIN_TASKQUERIES_H
0008 #define DOMAIN_TASKQUERIES_H
0009 
0010 #include "context.h"
0011 #include "queryresult.h"
0012 #include "task.h"
0013 #include "project.h"
0014 #include "datasource.h"
0015 
0016 namespace Domain {
0017 
0018 class TaskQueries
0019 {
0020 public:
0021     typedef QSharedPointer<TaskQueries> Ptr;
0022 
0023     TaskQueries();
0024     virtual ~TaskQueries();
0025 
0026     virtual QueryResult<Task::Ptr>::Ptr findAll() const = 0;
0027 
0028     virtual QueryResult<Task::Ptr>::Ptr findChildren(Task::Ptr task) const = 0;
0029 
0030     virtual QueryResult<Task::Ptr>::Ptr findTopLevel() const = 0;
0031 
0032     virtual QueryResult<Task::Ptr>::Ptr findInboxTopLevel() const = 0;
0033 
0034     virtual QueryResult<Task::Ptr>::Ptr findWorkdayTopLevel() const = 0;
0035 
0036     virtual QueryResult<Context::Ptr>::Ptr findContexts(Task::Ptr task) const = 0;
0037 
0038     virtual QueryResult<Project::Ptr>::Ptr findProject(Task::Ptr task) const = 0;
0039 
0040     virtual QueryResult<DataSource::Ptr>::Ptr findDataSource(Task::Ptr task) const = 0;
0041 };
0042 
0043 }
0044 
0045 #endif // DOMAIN_TASKQUERIES_H