task-managment / src / server / task / domain / repositories.ts
repositories.ts
Raw
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>
  }