import { UserId } from "@/server/user/domain/models";
import { FilterTasks, MonthlyActivity, ProjectTaskQueryResult, Task, TaskId, TasksByDate, WeeklyActivity } from "./models";
import { AreaId, ProjectId } from "@/server/project/domain/models";
export interface TaskRepository {
getProjectTasks(filter: FilterTasks): Promise<ProjectTaskQueryResult[]>;
getRecentModified(): Promise<Task[]>;
getAll(input: FilterTasks,userId?:UserId): Promise<TasksByDate[]>;
create(input: Task,userId:UserId):Promise<Task>
update(input:Partial<Task>,userId:UserId):Promise<Partial<Task>>
delete(taskId: TaskId,userId:UserId):Promise<Task>
isTaskAreaAssigned(areaId:AreaId):Promise<boolean>
getUserWeeklyActivity(userId: UserId):Promise<WeeklyActivity[]>
userMonthActivity(userId:UserId):Promise<MonthlyActivity>
}