diff --git a/src/domain/state/state.entity.ts b/src/domain/state/state.entity.ts new file mode 100644 index 0000000..978e999 --- /dev/null +++ b/src/domain/state/state.entity.ts @@ -0,0 +1,5 @@ +import type { TaskState } from "../task/task.entity.js"; + +export interface State { + name: TaskState; +} diff --git a/src/domain/state/state.repository.ts b/src/domain/state/state.repository.ts new file mode 100644 index 0000000..c2864f5 --- /dev/null +++ b/src/domain/state/state.repository.ts @@ -0,0 +1,6 @@ +import type { State } from "./state.entity.js"; + +export interface StateRepository { + findAll(): Promise; + findByName(name: string): Promise; +} diff --git a/src/domain/task/task.entity.ts b/src/domain/task/task.entity.ts new file mode 100644 index 0000000..27a432f --- /dev/null +++ b/src/domain/task/task.entity.ts @@ -0,0 +1,17 @@ +export type TaskState = "new" | "active" | "resolved" | "closed"; + +export interface StateEntry { + state: TaskState; + date: string; +} + +export interface Task { + id: string; + title: string; + description: string; + dueDate: string; + completed: boolean; + deletedAt: Date | null; + stateHistory: StateEntry[]; + notes: string[]; +} diff --git a/src/domain/task/task.repository.ts b/src/domain/task/task.repository.ts new file mode 100644 index 0000000..6878904 --- /dev/null +++ b/src/domain/task/task.repository.ts @@ -0,0 +1,9 @@ +import type { Task } from "./task.entity.js"; + +export interface TaskRepository { + findAll(): Promise; + findById(id: string): Promise; + create(task: Task): Promise; + update(id: string, updates: Partial): Promise; + delete(id: string): Promise; +}