Source: index.js

/**
 * A Todo data type
 * @typedef {Object} Todo - Todo 타입
 * @property {string} id - 아이디(required)
 * @property {string} content - 내용(required)
 * @property {boolean} completed - 완료여부(required)
 * @property {string} category - 카테코리(required)
 * @property {Array<string>} tags - 태그들(optional)
 */

/**
 * createTodo : 할 일을 추가한다.
 * @param {string} content - 내용(required)
 * @param {string} category - 카테코리(optional)
 * @property {boolean} completed - 완료여부(optional)
 * @param {Array<string>} tags - 태그들(optional)
 */
async function createTodo(content, category, tags) {}

/**
 * getAllTodo : 모든 할 일을 조회한다.
 * @returns {Promise<Todo[]>}
 */
async function getAllTodo() {}

/**
 * getTodo : ID를 기반으로 특정 할 일을 조회한다.
 * @param {id} id - 아이디(required)
 * @returns {Promise<Todo>}
 */
async function getTodo(id) {}

/**
 * updateTodo : ID를 제외한 모든 속성을 수정한다.
 * @param {UpdateTodo} id - 아이디(required)
 * @returns {Promise<Todo>}
 */
async function updateTodo(id) {}

/**
 * updateTag : 특정 할 일의 특정 태그를 수정한다.
 * @param {UpdateTodo} id - 아이디(required)
 * @returns {Promise<Todo>}
 */
async function updateTag(id) {}

/**
 * deleteTodo : ID를 기반으로 특정 할 일을 삭제한다.
 * @param {id} id - 아이디(required)
 * @returns {Promise<any>}
 */
async function deleteTodo(id) {}

/**
 * deleteAllTodo : 모든 할 일을 제거한다.
 * @returns {Promise<any>}
 */
async function deleteAllTodo() {}

/**
 * deleteTag : 특정 할 일의 특정 태그를 삭제한다.
 * @param {id} id - 아이디(required)
 * @param {Tag} tag - 태그(required)
 * @returns {Promise<any>}
 */
async function deleteTag(id, tag) {}

/**
 * deleteAllTags : 특정 할 일의 모든 태그를 제거한다.
 * @param {id} id - 아이디(required)
 * @returns {Promise<any>}
 */
async function deleteAllTags(id) {}