Skip to content

Commit

Permalink
feat: Todo 클래스 property 정의 및 생성자에서 옵셔널하게 입력 받기 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
daeseong9388 committed Nov 24, 2022
1 parent 46a2e30 commit 5a4fddd
Showing 1 changed file with 41 additions and 2 deletions.
43 changes: 41 additions & 2 deletions client/src/core/todo/todoList.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,46 @@
import { uuid } from 'uuidv4';

export interface InputTodo {
id?: string; // UUIDv4, 할일의 고유 id
title: string; // VARCHAR(255), 할일의 이름
content?: string; // TEXT, 할일의 상세 내용
owner: string; // UUIDv4, 할일 소유자의 id
importance: number; // INT or ENUM, 할일의 우선순위 레벨
until: Date; // DATE, 할일의 마감기한
from?: Date; // DATE, 할일의 시작기한
prev?: string[]; // or string[], 이전에 반드시 완료되어야 하는 할일 id 배열
next?: string[]; // or string[], 본 할일 이후에 실행되어야 하는 할일 id 배열
elapsedTime?: number;
lastPostponed: Date;
state: 'READY' | 'DONE' | 'WAIT';
}

class Todo {
id: string;
title: string;
content: string;
owner: string;
importance: number;
until: Date;
from: Date;
prev: string[];
next: string[];
elapsedTime: number;
lastPostponed: Date;
state: 'READY' | 'DONE' | 'WAIT';
constructor() {
this.state = 'DONE';
constructor(inputTodo: InputTodo) {
this.id = inputTodo.id ?? uuid();
this.title = inputTodo.title ?? 'default title';
this.content = inputTodo.content ?? 'default content';
this.owner = inputTodo.owner ?? 'default user';
this.importance = inputTodo.importance ?? 1;
this.until = new Date(inputTodo.until ?? new Date(2077, 1, 1));
this.from = new Date(inputTodo.from ?? new Date(1994, 1, 1));
this.prev = inputTodo.prev ?? [];
this.next = inputTodo.next ?? [];
this.elapsedTime = inputTodo.elapsedTime ?? 0;
this.lastPostponed = new Date(inputTodo.lastPostponed ?? new Date());
this.state = inputTodo.state ?? 'READY';
}

postponeTemporally(): void {}
Expand Down

0 comments on commit 5a4fddd

Please sign in to comment.