import { AreaId, ProjectId } from "@/server/project/domain/models";
import { FilterTasks, MonthlyActivity, ProjectTaskQueryResult, Task, TaskId, TasksByDate, WeeklyActivity } from "@/server/task/domain/models";
import { UserId } from "@/server/user/domain/models";
export interface TaskService {
getProjectTasks(filter: FilterTasks): Promise<ProjectTaskQueryResult[]>;
getRecentModifiedTasks(): Promise<Task[]>;
getAllTasks(filter: FilterTasks, userId?: UserId): Promise<TasksByDate[]>;
createTask(input: Task, userId: UserId): Promise<Task>;
updateTask(input: Partial<Task>, userId: UserId): Promise<Partial<Task>>;
deleteTask(taskId: TaskId, userId: UserId): Promise<Task>;
isTaskAreaAssigned(areaId:AreaId):Promise<boolean>
getUserWeeklyActivity(userId: UserId):Promise<WeeklyActivity[]>
getUserMonthActivity(userId:UserId):Promise<MonthlyActivity>
getUserCompleatedTasks(filter: FilterTasks): Promise<any[]>
}