From 6f8f10c4a0c7b0f1c7ecab1674f64b133fc4fb75 Mon Sep 17 00:00:00 2001 From: namdaeun Date: Mon, 3 Mar 2025 16:08:18 +0900 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=EB=AA=A8=EB=8B=AC=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=83=81=EC=88=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/Modal/Footer/ModalFooter.tsx | 11 +++++++---- apps/client/src/shared/constant/index.ts | 8 +++++++- apps/client/src/shared/constant/modal.tsx | 16 ++++++++-------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/apps/client/src/shared/component/Modal/Footer/ModalFooter.tsx b/apps/client/src/shared/component/Modal/Footer/ModalFooter.tsx index 401b46f9..ef0ba304 100644 --- a/apps/client/src/shared/component/Modal/Footer/ModalFooter.tsx +++ b/apps/client/src/shared/component/Modal/Footer/ModalFooter.tsx @@ -52,10 +52,13 @@ const ModalFooterButtons = ( switch (type) { case 'create-workspace': - return [ - step >= 3 ? createButton('건너뛰기', onClick, 'outline') : null, - createButton(step === 5 ? '확인' : '다음으로', onClick, 'primary', disabled), - ].filter(Boolean) as FooterButton[]; + if (step === 1) { + return [createButton('다음', onClick, 'primary', disabled)]; + } + if (step === 2 || step === 3) { + return [createButton('이전', onPrev, 'outline'), createButton('다음', onClick, 'primary', disabled)]; + } + return [createButton('확인', onClick, 'primary')]; case 'create-block': if (step === 1) { diff --git a/apps/client/src/shared/constant/index.ts b/apps/client/src/shared/constant/index.ts index 3ec7cdf9..a9e5f800 100644 --- a/apps/client/src/shared/constant/index.ts +++ b/apps/client/src/shared/constant/index.ts @@ -109,4 +109,10 @@ export const IMAGE_MODAL = { }, }; -export const MAX_TEAM_COUNT = 8; +export const MAX_TEAM_COUNT = 8 as const; + +export const MAX_TEAM_NAME = 30 as const; + +export const WORKSPACE_MODAL = { + NAME: '워크스페이스명은 30자까지 작성 가능해요', +}; diff --git a/apps/client/src/shared/constant/modal.tsx b/apps/client/src/shared/constant/modal.tsx index ec2d0b6f..8237124e 100644 --- a/apps/client/src/shared/constant/modal.tsx +++ b/apps/client/src/shared/constant/modal.tsx @@ -44,8 +44,8 @@ export const MODAL_CONTENTS: Record = { ) : ( {`${step}/${totalSteps}`} ), - title: '워크스페이스 이름 입력', - infoText: '워크스페이스 이름을 입력해주세요.', + title: '새로운 워크스페이스 생성하기', + infoText: '워크스페이스의 이름을 입력해주세요', }, { icon: (step: number, totalSteps: number) => @@ -54,8 +54,8 @@ export const MODAL_CONTENTS: Record = { ) : ( {`${step}/${totalSteps}`} ), - title: '카테고리 선택', - infoText: '카테고리를 선택해주세요.', + title: '새로운 워크스페이스 생성하기', + infoText: '팀 카테고리를 선택해주세요', }, { icon: (step: number, totalSteps: number) => @@ -64,8 +64,8 @@ export const MODAL_CONTENTS: Record = { ) : ( {`${step}/${totalSteps}`} ), - title: '프로필 이미지 등록', - infoText: '프로필 이미지를 등록해주세요.', + title: '동아리 프로필 이미지 등록', + infoText: '우리 동아리 프로필에 표시할 이미지를 등록해주세요', }, { icon: (step: number, totalSteps: number) => @@ -74,8 +74,8 @@ export const MODAL_CONTENTS: Record = { ) : ( {`${step}/${totalSteps}`} ), - title: '완료', - infoText: '워크스페이스 생성이 완료되었습니다.', + title: '워크스페이스 생성완료', + infoText: '이제 워크스페이스를 사용할 수 있습니다.', }, ], buttons: [ From 001c04005668494644046b4b4c733d0f63aadf0c Mon Sep 17 00:00:00 2001 From: namdaeun Date: Mon, 3 Mar 2025 16:08:43 +0900 Subject: [PATCH 02/10] =?UTF-8?q?feat:=20workspace=20=ED=8C=80=EB=AA=85=20?= =?UTF-8?q?=EA=B8=80=EC=9E=90=EC=88=98=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkSpaceModal/name/WorkSpaceName.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/client/src/shared/component/WorkSpaceModal/name/WorkSpaceName.tsx b/apps/client/src/shared/component/WorkSpaceModal/name/WorkSpaceName.tsx index 5d71af57..813b3ff5 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/name/WorkSpaceName.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/name/WorkSpaceName.tsx @@ -4,22 +4,24 @@ import { useState } from 'react'; import { Modal } from '@/shared/component/Modal'; import { inputWrapperStyle } from '@/shared/component/WorkSpaceModal/name/WorkSpaceName.style'; +import { MAX_TEAM_NAME, WORKSPACE_MODAL } from '@/shared/constant'; import { useFunnel } from '@/shared/hook/common/useFunnel'; import { useWorkSpaceContext } from '@/shared/hook/common/useWorkSpaceContext'; const WorkSpaceName = () => { - const [inputValue, setInputValue] = useState(''); - - const { setFormData } = useWorkSpaceContext(); + const { formData, setFormData } = useWorkSpaceContext(); const { nextStep } = useFunnel(); + const [inputValue, setInputValue] = useState(formData.name); + + const isDisabled = inputValue.trim().length === 0; + const isNameError = inputValue.length > MAX_TEAM_NAME; + const handleNext = () => { setFormData({ name: inputValue }); nextStep(); }; - const isDisabled = inputValue.trim().length === 0; - const handleInputChange = (e: React.ChangeEvent) => { setInputValue(e.target.value); }; @@ -32,6 +34,9 @@ const WorkSpaceName = () => { placeholder="팀, 동아리, 조직 이름 입력" value={inputValue} onChange={handleInputChange} + isError={isNameError} + supportingText={isNameError ? WORKSPACE_MODAL.NAME : ''} + maxLength={MAX_TEAM_NAME} css={inputWrapperStyle} /> From fb7fc7ddfc7865a2d602a8dccf9525a791979dde Mon Sep 17 00:00:00 2001 From: namdaeun Date: Mon, 3 Mar 2025 16:08:51 +0900 Subject: [PATCH 03/10] =?UTF-8?q?chore:=20=EC=8A=A4=ED=82=A4=EB=A7=88=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/shared/__generated__/schema.d.ts | 8592 ++++++++--------- 1 file changed, 4278 insertions(+), 4314 deletions(-) diff --git a/apps/client/src/shared/__generated__/schema.d.ts b/apps/client/src/shared/__generated__/schema.d.ts index 93e26a7a..29a901ca 100644 --- a/apps/client/src/shared/__generated__/schema.d.ts +++ b/apps/client/src/shared/__generated__/schema.d.ts @@ -4,4420 +4,4384 @@ */ export interface paths { - '/api/v1/teams': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 전체 팀 조회 - * @description 가입한 대학의 전체 팀을 조회한다. - */ - get: operations['getAllTeams']; - put?: never; - /** - * 팀 생성 - * @description 팀을 생성한다. - */ - post: operations['createTeam']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/trash': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 휴지통 조회 - * @description 휴지통을 조회한다. - */ - get: operations['getTrash']; - put?: never; - /** - * 휴지통 문서 복구 - * @description 휴지통 속 문서를 여러 개 복구한다. - */ - post: operations['restore']; - /** - * 휴지통 문서 삭제 - * @description 휴지통 속 문서를 여러 개 삭제한다. - */ - delete: operations['deleteTrash']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/time-block': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 타임 블록 생성 - * @description 타임 블록을 생성한다. - */ - post: operations['createTimeBlock']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/time-block/{timeBlockId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 타임 블록 상세 조회 - * @description 타임 블록을 상세 조회한다. - */ - get: operations['getTimeBlockDetail']; - put?: never; - /** - * 타임 블록 파일 태그 추가 - * @description 타임 블록에 파일 태그를 추가한다. - */ - post: operations['createDocumentTag']; - /** - * 타임 블록 삭제 - * @description 타임 블록을 삭제한다. - */ - delete: operations['deleteTimeBlock']; - options?: never; - head?: never; - /** - * 타임 블록 정보 수정 - * @description 타임 블록 정보를 수정한다. - */ - patch: operations['updateTimeBlock']; - trace?: never; - }; - '/api/v1/teams/{teamId}/folders': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 폴더 조회 - * @description 폴더를 여러 개 조회한다. - */ - get: operations['getFolders']; - put?: never; - /** - * 폴더 생성 - * @description 폴더를 생성한다. - */ - post: operations['createFolder']; - /** - * 폴더 삭제 - * @description 폴더를 여러 개 삭제한다. - */ - delete: operations['delete']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/documents': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 문서 조회 - * @description 문서를 조회한다. - */ - get: operations['getDocuments']; - put?: never; - /** - * 문서 생성 - * @description 문서를 여러 개 생성한다. - */ - post: operations['createDocuments']; - /** - * 문서 삭제 - * @description 문서를 여러 개 삭제한다. - */ - delete: operations['delete_1']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-invitation/team-member': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations['createTeamMemberFromInvitation']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/notes/template': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 템플릿 노트 생성 - * @description 새로운 템플릿 형식 노트를 생성한다. - */ - post: operations['createNoteTemplate']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/notes/free': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 자유 형식 노트 생성 - * @description 새로운 자유 형식 노트를 생성한다. - */ - post: operations['createNoteFree']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/members': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 회원가입 API - * @description 회원가입을 위한 정보를 보낸다. - */ - post: operations['signUp']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/file': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * s3 파일 삭제 - * @description s3의 파일 삭제한다. - */ - post: operations['deleteFile']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/email/verification/signup': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 회원가입 메일 전송 - * @description 회원 가입을 진행한다. - */ - post: operations['sendSignUpMail']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/email/verification/password': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 비밀번호 재설정 메일 전송 - * @description 비밀번호 재설정을 위한 이메일을 보낸다. - */ - post: operations['sendChangingPasswordMail']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/email/verification/checking': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post: operations['checkCode']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/email/invitation/team/{teamId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 팀원 초대 메일 전송 - * @description 팀원 초대를 위한 이메일을 전송한다. - */ - post: operations['sendInvitationMail']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/auth/sign-in': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * 로그인 - * @description 로그인을 진행한다. - */ - post: operations['signIn']; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/member/{targetId}/admin': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 관리자 권한 변경 - * @description 팀 관리자의 권한을 변경한다. - */ - patch: operations['alterAdmin']; - trace?: never; - }; - '/api/v1/teams/{teamId}/inform': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 팀 정보 조회 - * @description 특정 팀의 정보를 조회한다. - */ - get: operations['getTeamName']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 팀 정보 수정 - * @description 팀 정보를 수정한다. - */ - patch: operations['updateTeamInform']; - trace?: never; - }; - '/api/v1/teams/{teamId}/folders/{folderId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 폴더 이름 수정 - * @description 폴더 이름을 수정한다. - */ - patch: operations['updateFolderName']; - trace?: never; - }; - '/api/v1/team-member/teams/{teamId}/members/name': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch: operations['updateTeamMemberName']; - trace?: never; - }; - '/api/v1/notes/template/{noteId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 템플릿 노트 수정 - * @description 기존 템플릿 노트를 수정한다. - */ - patch: operations['updateNoteTemplate']; - trace?: never; - }; - '/api/v1/notes/free/{noteId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 자유 형식 노트 수정 - * @description 기존 자유 형식 노트를 수정한다. - */ - patch: operations['updateNoteFree']; - trace?: never; - }; - '/api/v1/members/password': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * 비밀번호 변경 - * @description 비밀번호를 변경합니다. - */ - patch: operations['changePassword']; - trace?: never; - }; - '/api/v1/teams/{teamId}/timeline': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 타임라인 조회 - * @description 타임라인을 조회한다. - */ - get: operations['getTimeline']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/time-block/all': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 타임 블록 전체 조회 - * @description 타임 블록을 전체 조회한다. - */ - get: operations['getAllTimeBlock']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/drive': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 드라이브 조회 - * @description 드라이브 뷰를 조회한다. - */ - get: operations['getDrive']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/capacity': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 팀 용량 정보 조회 - * @description 팀 용량 정보를 조회한다. - */ - get: operations['getCapacityInfo']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/category': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 카테고리 조회 - * @description 카테고리 리스트를 조회한다. - */ - get: operations['getCategories']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-member/teams/{teamId}/members': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations['getMembers']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-member/teams/{teamId}/members/position': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations['getMemberTeamInform']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-invitation': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations['getInvitationInform']; - put?: never; - post?: never; - delete: operations['deleteTeamInvitationFromUser']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-invitation/team/{teamId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get: operations['getTeamInvitation']; - put?: never; - post?: never; - delete: operations['deleteTeamInvitationFromAdmin']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/notes/{teamId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 노트 목록 조회 - * @description 특정 팀의 노트 목록을 조회한다. - */ - get: operations['getNote']; - put?: never; - post?: never; - /** - * 노트 삭제 - * @description 특정 팀의 노트를 삭제한다. - */ - delete: operations['deleteNotes']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/notes/{teamId}/{noteId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 노트 상세 조회 - * @description 특정 노트의 상세 정보를 조회한다. - */ - get: operations['getNoteDetail']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/members/withdrawal': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 회원 탈퇴 - * @description 회원 탈퇴를 진행합니다. - */ - get: operations['withdrawal']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/members/teams': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 소속 팀 가져오기 - * @description 왼쪽 사이드바의 소속된 팀 정보를 가져옵니다. - */ - get: operations['getBelongTeam']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/members/info': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 회원 정보 가져오기 - * @description 회원 정보를 가져옵니다. - */ - get: operations['getMemberInfo']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/file/upload': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Presigned Url 생성 - * @description s3로부터 Presigned Url을 생성한다. - */ - get: operations['getPreSignedUrl']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/documents/team/{teamId}/timeline': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 전체 문서 조회 - * @description 전체 문서를 조회한다. - */ - get: operations['getAllDocuments']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/auth/reissue': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * 엑세스 토큰 재발급 - * @description 엑세스 토큰 재발급 메서드입니다. - */ - get: operations['reissue']; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - /** - * 팀 삭제 - * @description 팀을 삭제한다. - */ - delete: operations['deleteTeam']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/teams/{teamId}/time-block/{timeBlockId}/tags': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - /** - * 타임 블록 파일 태그 삭제 - * @description 타임 블록의 파일 태그를 삭제한다. - */ - delete: operations['deleteDocumentTag']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-member/teams/{teamId}/members/{kickOutMemberId}': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete: operations['kickOutMemberFromTeam']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - '/api/v1/team-member/teams/{teamId}/leave': { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete: operations['leaveTeam']; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; -} -export type webhooks = Record; -export interface components { - schemas: { - TeamCreateRequest: { - name: string; - /** @enum {string} */ - category: - | '전체' - | '학술연구' - | '문화예술' - | '스포츠레저' - | '사회활동' - | '취미활동' - | '창업비즈니스' - | '과학기술' - | '종교' - | '국제교류' - | '네트워킹'; - iconImageUrl: string; - }; - SuccessResponseTeamCreateResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamCreateResponse']; - }; - TeamCreateResponse: { - /** Format: int64 */ - teamId: number; - }; - ErrorResponse: { - success: boolean; - message: string; - }; - TimeBlockCreateRequest: { - name: string; - color: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - /** @enum {string} */ - blockType: 'MEETING' | 'RECRUITING' | 'STUDY' | 'EVENT' | 'NOTICE' | 'ETC'; - documentIds: number[]; - }; - SuccessResponseTimeBlockCreateResponse: { - success: boolean; - message: string; - data?: components['schemas']['TimeBlockCreateResponse']; - }; - TimeBlockCreateResponse: { - /** Format: int64 */ - timeBlockId: number; - }; - SuccessResponseObject: { - success: boolean; - message: string; - data?: Record; - }; - FolderCreateRequest: { - /** - * @description 폴더 이름 - * @example 폴더 1 - */ - name: string; - }; - FolderCreateResponse: { - /** Format: int64 */ - folderId: number; - }; - SuccessResponseFolderCreateResponse: { - success: boolean; - message: string; - data?: components['schemas']['FolderCreateResponse']; - }; - DocumentCreateRequest: { - /** - * @description 파일 이름 - * @example tiki.jpg - */ - fileName: string; - /** - * @description 파일 url - * @example https://.../tiki.jpg - */ - fileUrl: string; - /** - * @description 파일 key - * @example ....jpg - */ - fileKey: string; - /** - * Format: int64 - * @description 파일 용량 (단위 : byte) - * @example 123 - */ - capacity: number; - }; - DocumentsCreateRequest: { - documents: components['schemas']['DocumentCreateRequest'][]; - }; - DocumentCreateResponse: { - /** Format: int64 */ - documentId: number; - }; - DocumentsCreateResponse: { - response: components['schemas']['DocumentCreateResponse'][]; - }; - SuccessResponseDocumentsCreateResponse: { - success: boolean; - message: string; - data?: components['schemas']['DocumentsCreateResponse']; - }; - NoteTemplateCreateRequest: { - title: string; - complete: boolean; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - answerWhatActivity: string; - answerHowToPrepare: string; - answerWhatIsDisappointedThing: string; - answerHowToFix: string; - timeBlockIds: number[]; - documentIds: number[]; - /** Format: int64 */ - teamId: number; - }; - NoteCreateServiceResponse: { - /** Format: int64 */ - noteId: number; - }; - SuccessResponseNoteCreateServiceResponse: { - success: boolean; - message: string; - data?: components['schemas']['NoteCreateServiceResponse']; - }; - NoteFreeCreateRequest: { - title: string; - complete: boolean; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - contents: string; - timeBlockIds: number[]; - documentIds: number[]; - /** Format: int64 */ - teamId: number; - }; - MemberProfileCreateRequest: { - name: string; - /** Format: date */ - birth: string; - /** @enum {string} */ - univ: '건국대학교'; - email: string; - password: string; - passwordChecker: string; - }; - S3DeleteRequest: { - fileKey: string; - }; - EmailRequest: { - email: string; - }; - CodeVerificationRequest: { - email: string; - code: string; - }; - SignInRequest: { - email: string; - password: string; - }; - SignInGetResponse: { - accessToken: string; - refreshToken: string; - }; - SuccessResponseSignInGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['SignInGetResponse']; - }; - TimeBlockUpdateRequest: { - name: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - }; - TeamInformUpdateRequest: { - teamName: string; - teamUrl: string; - }; - FolderNameUpdateRequest: { - /** - * @description 수정할 폴더 이름 - * @example 수정할 폴더 1 - */ - name: string; - }; - UpdateTeamMemberNameRequest: { - newName: string; - }; - NoteTemplateUpdateRequest: { - title: string; - complete: boolean; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - answerWhatActivity: string; - answerHowToPrepare: string; - answerWhatIsDisappointedThing: string; - answerHowToFix: string; - timeBlockIds: number[]; - documentIds: number[]; - /** Format: int64 */ - teamId: number; - }; - NoteFreeUpdateRequest: { - title: string; - complete: boolean; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - contents: string; - timeBlockIds: number[]; - documentIds: number[]; - /** Format: int64 */ - teamId: number; - }; - PasswordChangeRequest: { - email: string; - password: string; - passwordChecker: string; - }; - SuccessResponseTeamsGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamsGetResponse']; - }; - TeamGetResponse: { - /** Format: int64 */ - teamId: number; - name: string; - /** @enum {string} */ - category: - | '전체' - | '학술연구' - | '문화예술' - | '스포츠레저' - | '사회활동' - | '취미활동' - | '창업비즈니스' - | '과학기술' - | '종교' - | '국제교류' - | '네트워킹'; - /** @enum {string} */ - univ: '건국대학교'; - overview: string; - imageUrl: string; - }; - TeamsGetResponse: { - teams: components['schemas']['TeamGetResponse'][]; - }; - DeletedDocumentGetResponse: { - /** Format: int64 */ - documentId: number; - name: string; - url: string; - /** Format: int64 */ - capacity: number; - }; - DeletedDocumentsGetResponse: { - deletedDocuments: components['schemas']['DeletedDocumentGetResponse'][]; - }; - SuccessResponseDeletedDocumentsGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['DeletedDocumentsGetResponse']; - }; - SuccessResponseTimelineGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TimelineGetResponse']; - }; - TimeBlockGetResponse: { - /** Format: int64 */ - timeBlockId: number; - name: string; - color: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - /** @enum {string} */ - blockType: 'MEETING' | 'RECRUITING' | 'STUDY' | 'EVENT' | 'NOTICE' | 'ETC'; - }; - TimelineGetResponse: { - timeBlocks: components['schemas']['TimeBlockGetResponse'][]; - }; - DocumentDetailGetResponse: { - /** Format: int64 */ - documentId: number; - fileName: string; - fileUrl: string; - /** Format: int64 */ - capacity: number; - /** Format: int64 */ - tagId: number; - }; - NoteNameGetResponse: { - /** Format: int64 */ - noteId: number; - noteName: string; - }; - SuccessResponseTimeBlockDetailGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TimeBlockDetailGetResponse']; - }; - TimeBlockDetailGetResponse: { - documents: components['schemas']['DocumentDetailGetResponse'][]; - notes: components['schemas']['NoteNameGetResponse'][]; - }; - AllTimeBlockServiceResponse: { - tImeBlockTaggingResponses: components['schemas']['TImeBlockTaggingResponse'][]; - }; - SuccessResponseAllTimeBlockServiceResponse: { - success: boolean; - message: string; - data?: components['schemas']['AllTimeBlockServiceResponse']; - }; - TImeBlockTaggingResponse: { - /** Format: int64 */ - timeBlockId: number; - name: string; - /** @enum {string} */ - type: 'MEETING' | 'RECRUITING' | 'STUDY' | 'EVENT' | 'NOTICE' | 'ETC'; - color: string; - /** Format: date */ - startDate: string; - }; - SuccessResponseTeamInformGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamInformGetResponse']; - }; - TeamInformGetResponse: { - teamName: string; - /** @enum {string} */ - university: '건국대학교'; - teamIconUrl: string; - /** Format: date */ - namingUpdatedAt: string; - }; - FolderInfoGetResponse: { - /** Format: int64 */ - id: number; - name: string; - /** Format: date-time */ - createdTime: string; - path: string; - }; - FoldersGetResponse: { - folders: components['schemas']['FolderInfoGetResponse'][]; - }; - SuccessResponseFoldersGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['FoldersGetResponse']; - }; - DocumentGetResponse: { - /** Format: int64 */ - documentId: number; - name: string; - url: string; - /** Format: int64 */ - capacity: number; - /** Format: date-time */ - createdTime: string; - type: string; - }; - DriveGetResponse: { - documents: components['schemas']['DocumentGetResponse'][]; - folders: components['schemas']['FolderGetResponse'][]; - }; - FolderGetResponse: { - /** Format: int64 */ - folderId: number; - name: string; - /** Format: date-time */ - createdTime: string; - path: string; - type: string; - }; - SuccessResponseDriveGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['DriveGetResponse']; - }; - DocumentInfoGetResponse: { - /** Format: int64 */ - documentId: number; - name: string; - url: string; - /** Format: int64 */ - capacity: number; - /** Format: date-time */ - createdTime: string; - }; - DocumentsGetResponse: { - documents: components['schemas']['DocumentInfoGetResponse'][]; - }; - SuccessResponseDocumentsGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['DocumentsGetResponse']; - }; - SuccessResponseUsageGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['UsageGetResponse']; - }; - UsageGetResponse: { - /** Format: int64 */ - capacity: number; - /** Format: int64 */ - usage: number; - }; - CategoriesGetResponse: { - categories: ( - | '전체' - | '학술연구' - | '문화예술' - | '스포츠레저' - | '사회활동' - | '취미활동' - | '창업비즈니스' - | '과학기술' - | '종교' - | '국제교류' - | '네트워킹' - )[]; - }; - SuccessResponseCategoriesGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['CategoriesGetResponse']; - }; - SuccessResponseTeamMembersGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamMembersGetResponse']; - }; - TeamMemberGetResponse: { - name: string; - /** @enum {string} */ - position: 'ADMIN' | 'EXECUTIVE' | 'MEMBER'; - email: string; - }; - TeamMembersGetResponse: { - teamMemberGetResponses: components['schemas']['TeamMemberGetResponse'][]; - }; - MemberTeamInformGetResponse: { - /** @enum {string} */ - position: 'ADMIN' | 'EXECUTIVE' | 'MEMBER'; - name: string; - }; - SuccessResponseMemberTeamInformGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['MemberTeamInformGetResponse']; - }; - SuccessResponseTeamInvitationInformGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamInvitationInformGetResponse']; - }; - TeamInvitationInformGetResponse: { - sender: string; - teamName: string; - teamIconUrl: string; - /** Format: int64 */ - teamId: number; - }; - SuccessResponseTeamInvitationEmailsGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['TeamInvitationEmailsGetResponse']; - }; - TeamInvitationEmailGetResponse: { - email: string; - }; - TeamInvitationEmailsGetResponse: { - teamInvitationEmailGetResponses: components['schemas']['TeamInvitationEmailGetResponse'][]; - }; - NoteGetResponse: { - /** Format: int64 */ - noteId: number; - title: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - author: string; - complete: boolean; - /** Format: date-time */ - lastUpdatedAt: string; - }; - NoteListGetServiceResponse: { - noteGetResponseList: components['schemas']['NoteGetResponse'][]; - }; - SuccessResponseNoteListGetServiceResponse: { - success: boolean; - message: string; - data?: components['schemas']['NoteListGetServiceResponse']; - }; - DocumentTagGetServiceResponse: { - /** Format: int64 */ - id: number; - fileName: string; - fileUrl: string; - /** Format: int64 */ - capacity: number; - }; - NoteFreeDetailGetServiceResponse: { - /** Format: int64 */ - noteId: number; - /** @enum {string} */ - noteType: 'FREE' | 'TEMPLATE'; - title: string; - author: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - complete: boolean; - contents: string; - documentList: components['schemas']['DocumentTagGetServiceResponse'][]; - timeBlockList: components['schemas']['TimeBlockTagServiceResponse'][]; - }; - NoteTemplateDetailGetServiceResponse: { - /** Format: int64 */ - noteId: number; - /** @enum {string} */ - noteType: 'FREE' | 'TEMPLATE'; - title: string; - author: string; - /** Format: date */ - startDate: string; - /** Format: date */ - endDate: string; - complete: boolean; - answerWhatActivity: string; - answerHowToPrepare: string; - answerWhatIsDisappointedThing: string; - answerHowToFix: string; - documentList: components['schemas']['DocumentTagGetServiceResponse'][]; - timeBlockList: components['schemas']['TimeBlockTagServiceResponse'][]; - }; - SuccessNoteDetailResponse: { - success: boolean; - message: string; - /** @description 응답 데이터 */ - data?: - | components['schemas']['NoteFreeDetailGetServiceResponse'] - | components['schemas']['NoteTemplateDetailGetServiceResponse']; - }; - TimeBlockTagServiceResponse: { - /** Format: int64 */ - id: number; - name: string; - color: string; - /** @enum {string} */ - blockType: 'MEETING' | 'RECRUITING' | 'STUDY' | 'EVENT' | 'NOTICE' | 'ETC'; - /** Format: date */ - startDate: string; - }; - BelongTeamGetResponse: { - /** Format: int64 */ - id: number; - name: string; - iconImageUrl: string; - }; - BelongTeamsGetResponse: { - belongTeamGetResponses: components['schemas']['BelongTeamGetResponse'][]; - }; - SuccessResponseBelongTeamsGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['BelongTeamsGetResponse']; - }; - MemberInfoGetResponse: { - Email: string; - name: string; - /** Format: date */ - birth: string; - University: string; - }; - SuccessResponseMemberInfoGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['MemberInfoGetResponse']; - }; - PreSignedUrlResponse: { - fileName: string; - url: string; - }; - SuccessResponsePreSignedUrlResponse: { - success: boolean; - message: string; - data?: components['schemas']['PreSignedUrlResponse']; - }; - SuccessResponse: { - success: boolean; - message: string; - data?: Record; - }; - ReissueGetResponse: { - accessToken: string; - }; - SuccessResponseReissueGetResponse: { - success: boolean; - message: string; - data?: components['schemas']['ReissueGetResponse']; - }; - }; - responses: never; - parameters: never; - requestBodies: never; - headers: never; - pathItems: never; -} -export type $defs = Record; -export interface operations { - getAllTeams: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamsGetResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamsGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamsGetResponse']; - }; - }; - }; - }; - createTeam: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['TeamCreateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamCreateResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamCreateResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamCreateResponse']; - }; - }; - }; - }; - getTrash: { - parameters: { - query?: never; - header?: never; - path: { - /** - * @description 팀 id - * @example 1 - */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseDeletedDocumentsGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - restore: { - parameters: { - query: { - /** - * @description 복구할 파일 id 리스트 - * @example [ - * 1, - * 2 - * ] - */ - documentId: number[]; - }; - header?: never; - path: { + "/api/v1/teams": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 전체 팀 조회 + * @description 가입한 대학의 전체 팀을 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - deleteTrash: { - parameters: { - query: { + get: operations["getAllTeams"]; + put?: never; /** - * @description 삭제할 파일 id 리스트 - * @example [ - * 1, - * 2 - * ] + * 팀 생성 + * @description 팀을 생성한다. */ - documentId: number[]; - }; - header?: never; - path: { + post: operations["createTeam"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/trash": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 휴지통 조회 + * @description 휴지통을 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createTimeBlock: { - parameters: { - query: { + get: operations["getTrash"]; + put?: never; /** - * @description 타임라인 타입 - * @example executive, member + * 휴지통 문서 복구 + * @description 휴지통 속 문서를 여러 개 복구한다. */ - type: string; - }; - header?: never; - path: { + post: operations["restore"]; /** - * @description 팀 id - * @example 1 + * 휴지통 문서 삭제 + * @description 휴지통 속 문서를 여러 개 삭제한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['TimeBlockCreateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTimeBlockCreateResponse']; - }; - }; - /** @description 타입 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원, 유효하지 않은 팀 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getTimeBlockDetail: { - parameters: { - query?: never; - header?: never; - path: { + delete: operations["deleteTrash"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/time-block": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 팀 id - * @example 1 + * 타임 블록 생성 + * @description 타임 블록을 생성한다. */ - teamId: number; + post: operations["createTimeBlock"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/time-block/{timeBlockId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 타임 블록 id - * @example 1 + * 타임 블록 상세 조회 + * @description 타임 블록을 상세 조회한다. */ - timeBlockId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTimeBlockDetailGetResponse']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createDocumentTag: { - parameters: { - query: { + get: operations["getTimeBlockDetail"]; + put?: never; /** - * @description 추가할 파일 id 리스트 - * @example [ - * 1, - * 2 - * ] + * 타임 블록 파일 태그 추가 + * @description 타임 블록에 파일 태그를 추가한다. */ - documentId: number[]; - }; - header?: never; - path: { + post: operations["createDocumentTag"]; /** - * @description 팀 id - * @example 1 + * 타임 블록 삭제 + * @description 타임 블록을 삭제한다. */ - teamId: number; + delete: operations["deleteTimeBlock"]; + options?: never; + head?: never; /** - * @description 타임 블록 id - * @example 1 + * 타임 블록 정보 수정 + * @description 타임 블록 정보를 수정한다. */ - timeBlockId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; + patch: operations["updateTimeBlock"]; + trace?: never; }; - }; - deleteTimeBlock: { - parameters: { - query?: never; - header?: never; - path: { + "/api/v1/teams/{teamId}/folders": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 폴더 조회 + * @description 폴더를 여러 개 조회한다. */ - teamId: number; + get: operations["getFolders"]; + put?: never; /** - * @description 타임 블록 id - * @example 1 + * 폴더 생성 + * @description 폴더를 생성한다. */ - timeBlockId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - updateTimeBlock: { - parameters: { - query?: never; - header?: never; - path: { + post: operations["createFolder"]; /** - * @description 팀 id - * @example 1 + * 폴더 삭제 + * @description 폴더를 여러 개 삭제한다. */ - teamId: number; + delete: operations["delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/documents": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 타임 블록 id - * @example 1 + * 문서 조회 + * @description 문서를 조회한다. */ - timeBlockId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['TimeBlockUpdateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getFolders: { - parameters: { - query?: { + get: operations["getDocuments"]; + put?: never; /** - * @description 조회할 폴더 id (최상단은 비워두기) - * @example 1 + * 문서 생성 + * @description 문서를 여러 개 생성한다. */ - folderId?: number; - }; - header?: never; - path: { + post: operations["createDocuments"]; /** - * @description 팀 id - * @example 1 + * 문서 삭제 + * @description 문서를 여러 개 삭제한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseFoldersGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createFolder: { - parameters: { - query?: { + delete: operations["delete_1"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-invitation/team-member": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["createTeamMemberFromInvitation"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/notes/template": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 생성할 폴더가 속할 폴더 id (최상단은 비워두기) - * @example 1 + * 템플릿 노트 생성 + * @description 새로운 템플릿 형식 노트를 생성한다. */ - folderId?: number; - }; - header?: never; - path: { + post: operations["createNoteTemplate"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/notes/free": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 팀 id - * @example 1 + * 자유 형식 노트 생성 + * @description 새로운 자유 형식 노트를 생성한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['FolderCreateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseFolderCreateResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - delete: { - parameters: { - query: { + post: operations["createNoteFree"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/members": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 삭제할 폴더 id 리스트 - * @example [ - * 1, - * 2 - * ] + * 회원가입 API + * @description 회원가입을 위한 정보를 보낸다. */ - folderId: number[]; - }; - header?: never; - path: { + post: operations["signUp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/file": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 팀 id - * @example 1 + * s3 파일 삭제 + * @description s3의 파일 삭제한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getDocuments: { - parameters: { - query?: { + post: operations["deleteFile"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/email/verification/signup": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 조회할 폴더 id (최상단은 비워두기) - * @example 1 + * 회원가입 메일 전송 + * @description 회원 가입을 진행한다. */ - folderId?: number; - }; - header?: never; - path: { + post: operations["sendSignUpMail"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/email/verification/password": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 팀 id - * @example 1 + * 비밀번호 재설정 메일 전송 + * @description 비밀번호 재설정을 위한 이메일을 보낸다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseDocumentsGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createDocuments: { - parameters: { - query?: { + post: operations["sendChangingPasswordMail"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/email/verification/checking": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["checkCode"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/email/invitation/team/{teamId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 생성할 파일이 속할 폴더 id - * @example 1 + * 팀원 초대 메일 전송 + * @description 팀원 초대를 위한 이메일을 전송한다. */ - folderId?: number; - }; - header?: never; - path: { + post: operations["sendInvitationMail"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/auth/sign-in": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; /** - * @description 팀 id - * @example 1 + * 로그인 + * @description 로그인을 진행한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['DocumentsCreateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseDocumentsCreateResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - delete_1: { - parameters: { - query: { - /** - * @description 삭제할 파일 id 리스트 - * @example [ - * 1, - * 2 - * ] - */ - documentId: number[]; - }; - header?: never; - path: { + post: operations["signIn"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/member/{targetId}/admin": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 팀 id - * @example 1 + * 관리자 권한 변경 + * @description 팀 관리자의 권한을 변경한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createTeamMemberFromInvitation: { - parameters: { - query: { - teamId: number; - teamInvitationId: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - createNoteTemplate: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['NoteTemplateCreateRequest']; - }; - }; - responses: { - /** @description 노트 생성 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseNoteCreateServiceResponse']; - }; - }; - /** @description 요청 데이터 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - createNoteFree: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['NoteFreeCreateRequest']; - }; - }; - responses: { - /** @description 노트 생성 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseNoteCreateServiceResponse']; - }; - }; - /** @description 요청 데이터 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - signUp: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['MemberProfileCreateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 비밀번호 불일치 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 이미 가입된 아이디 */ - 409: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - deleteFile: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; + patch: operations["alterAdmin"]; + trace?: never; }; - requestBody: { - content: { - 'application/json': components['schemas']['S3DeleteRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description S3 버킷의 파일 삭제 실패 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - sendSignUpMail: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['EmailRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 이메일 형식 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 이미 가입된 아이디 */ - 409: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - sendChangingPasswordMail: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['EmailRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 이메일 형식 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 가입되지 않은 이메일 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - checkCode: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['CodeVerificationRequest']; - }; - }; - responses: { - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; + "/api/v1/teams/{teamId}/inform": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - }; - }; - }; - sendInvitationMail: { - parameters: { - query?: never; - header?: never; - path: { /** - * @description 팀 id - * @example 1 + * 팀 정보 조회 + * @description 특정 팀의 정보를 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['EmailRequest']; - }; - }; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 이미 존재하는 팀원 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀이 존재하지 않음 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - signIn: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['SignInRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseSignInGetResponse']; - }; - }; - /** @description Created */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseSignInGetResponse']; - }; - }; - /** @description 일치하지 않은 비밀번호 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - alterAdmin: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 팀 ID */ - teamId: number; - /** @description 권한 변경 대상 ID */ - targetId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - getTeamName: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 팀 ID */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamInformGetResponse']; - }; - }; - /** @description 존재하지 않는 팀 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamInformGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamInformGetResponse']; - }; - }; - }; - }; - updateTeamInform: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 팀 ID */ - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['TeamInformUpdateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - updateFolderName: { - parameters: { - query?: never; - header?: never; - path: { + get: operations["getTeamName"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 팀 id - * @example 1 + * 팀 정보 수정 + * @description 팀 정보를 수정한다. */ - teamId: number; + patch: operations["updateTeamInform"]; + trace?: never; + }; + "/api/v1/teams/{teamId}/folders/{folderId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 수정할 폴더 id - * @example 1 + * 폴더 이름 수정 + * @description 폴더 이름을 수정한다. */ - folderId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['FolderNameUpdateRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - updateTeamMemberName: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['UpdateTeamMemberNameRequest']; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - updateNoteTemplate: { - parameters: { - query?: never; - header?: never; - path: { + patch: operations["updateFolderName"]; + trace?: never; + }; + "/api/v1/team-member/teams/{teamId}/members/name": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch: operations["updateTeamMemberName"]; + trace?: never; + }; + "/api/v1/notes/template/{noteId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 노트 id - * @example 1 + * 템플릿 노트 수정 + * @description 기존 템플릿 노트를 수정한다. */ - noteId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['NoteTemplateUpdateRequest']; - }; - }; - responses: { - /** @description 노트 수정 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 요청 데이터 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 존재하지 않는 노트 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - updateNoteFree: { - parameters: { - query?: never; - header?: never; - path: { + patch: operations["updateNoteTemplate"]; + trace?: never; + }; + "/api/v1/notes/free/{noteId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 노트 id - * @example 1 + * 자유 형식 노트 수정 + * @description 기존 자유 형식 노트를 수정한다. */ - noteId: number; - }; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['NoteFreeUpdateRequest']; - }; - }; - responses: { - /** @description 노트 수정 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 요청 데이터 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 존재하지 않는 노트 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - changePassword: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - 'application/json': components['schemas']['PasswordChangeRequest']; - }; - }; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 비밀번호가 일치하지 않습니다. */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getTimeline: { - parameters: { - query: { - /** - * @description 타임라인 타입 - * @example executive, member - */ - type: string; + patch: operations["updateNoteFree"]; + trace?: never; + }; + "/api/v1/members/password": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; /** - * @description 조회할 타임라인의 년도와 월 정보 - * @example 2024-07 + * 비밀번호 변경 + * @description 비밀번호를 변경합니다. */ - date: string; - }; - header?: never; - path: { - /** - * @description 팀 id - * @example 1 - */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTimelineGetResponse']; - }; - }; - /** @description 타입 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원, 유효하지 않은 팀 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; + patch: operations["changePassword"]; + trace?: never; }; - }; - getAllTimeBlock: { - parameters: { - query?: never; - header?: never; - path: { + "/api/v1/teams/{teamId}/timeline": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 타임라인 조회 + * @description 타임라인을 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseAllTimeBlockServiceResponse']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getDrive: { - parameters: { - query?: { + get: operations["getTimeline"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/time-block/all": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 조회할 폴더 id (최상단은 비워두기) - * @example 1 + * 타임 블록 전체 조회 + * @description 타임 블록을 전체 조회한다. */ - folderId?: number; - }; - header?: never; - path: { + get: operations["getAllTimeBlock"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/drive": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 드라이브 조회 + * @description 드라이브 뷰를 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseDriveGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getCapacityInfo: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 팀 ID */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseUsageGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseUsageGetResponse']; - }; - }; - }; - }; - getCategories: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseCategoriesGetResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseCategoriesGetResponse']; - }; - }; - }; - }; - getMembers: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamMembersGetResponse']; + get: operations["getDrive"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/capacity": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; }; - }; - }; - }; - getMemberTeamInform: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseMemberTeamInformGetResponse']; - }; - }; - }; - }; - getInvitationInform: { - parameters: { - query: { - invitationId: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamInvitationInformGetResponse']; - }; - }; - }; - }; - deleteTeamInvitationFromUser: { - parameters: { - query: { - invitationId: number; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - getTeamInvitation: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseTeamInvitationEmailsGetResponse']; - }; - }; - }; - }; - deleteTeamInvitationFromAdmin: { - parameters: { - query: { - invitationId: number; - }; - header?: never; - path: { - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - getNote: { - parameters: { - query?: { /** - * @description 생성시간 - * @example yyyy-MM-dd'T'HH:mm:ss.nnnnnnnnn + * 팀 용량 정보 조회 + * @description 팀 용량 정보를 조회한다. */ - createdAt?: string; + get: operations["getCapacityInfo"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/category": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 정렬 순서 - * @example ASC, DESC + * 카테고리 조회 + * @description 카테고리 리스트를 조회한다. */ - sortOrder?: 'ASC' | 'DESC'; - }; - header?: never; - path: { + get: operations["getCategories"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-member/teams/{teamId}/members": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getMembers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-member/teams/{teamId}/members/position": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getMemberTeamInform"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-invitation": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getInvitationInform"]; + put?: never; + post?: never; + delete: operations["deleteTeamInvitationFromUser"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-invitation/team/{teamId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getTeamInvitation"]; + put?: never; + post?: never; + delete: operations["deleteTeamInvitationFromAdmin"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/notes/{teamId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 노트 목록 조회 + * @description 특정 팀의 노트 목록을 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 조회 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseNoteListGetServiceResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - deleteNotes: { - parameters: { - query: { + get: operations["getNote"]; + put?: never; + post?: never; /** - * @description 노트 id 리스트 - * @example [ - * 1, - * 2, - * 3, - * 4, - * 5 - * ] + * 노트 삭제 + * @description 특정 팀의 노트를 삭제한다. */ - noteIds: number[]; - }; - header?: never; - path: { + delete: operations["deleteNotes"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/notes/{teamId}/{noteId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 노트 상세 조회 + * @description 특정 노트의 상세 정보를 조회한다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 삭제 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 요청 데이터 오류 */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getNoteDetail: { - parameters: { - query?: never; - header?: never; - path: { + get: operations["getNoteDetail"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/members/teams": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 소속 팀 가져오기 + * @description 왼쪽 사이드바의 소속된 팀 정보를 가져옵니다. */ - teamId: number; + get: operations["getBelongTeam"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/members/info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 노트 id - * @example 1 + * 회원 정보 가져오기 + * @description 회원 정보를 가져옵니다. */ - noteId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 조회 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - 'application/json': components['schemas']['SuccessNoteDetailResponse']; - }; - }; - /** @description 접근 권한 없음(토큰 에러) */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - withdrawal: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getBelongTeam: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseBelongTeamsGetResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getMemberInfo: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseMemberInfoGetResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getPreSignedUrl: { - parameters: { - query: { + get: operations["getMemberInfo"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/file/upload": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 파일 형식 - * @example hwp, pdf, ... + * Presigned Url 생성 + * @description s3로부터 Presigned Url을 생성한다. */ - fileFormat: string; - }; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponsePreSignedUrlResponse']; - }; - }; - /** @description S3 PRESIGNED URL 불러오기 실패 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - getAllDocuments: { - parameters: { - query: { + get: operations["getPreSignedUrl"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/documents/team/{teamId}/timeline": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 타임라인 타입 - * @example executive, member + * 전체 문서 조회 + * @description 전체 문서를 조회한다. */ - type: string; - }; - header?: never; - path: { + get: operations["getAllDocuments"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/auth/reissue": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; /** - * @description 팀 id - * @example 1 + * 엑세스 토큰 재발급 + * @description 엑세스 토큰 재발급 메서드입니다. */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseDocumentsGetResponse']; - }; - }; - /** @description 접근 권한 없음 */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 팀에 존재하지 않는 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - reissue: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 201: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseReissueGetResponse']; - }; - }; - /** @description 유효하지 않은 키, 인증되지 않은 사용자 */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponse']; - }; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - deleteTeam: { - parameters: { - query?: never; - header?: never; - path: { - /** @description 팀 ID */ - teamId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 유효하지 않은 회원 */ - 404: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - }; - }; - deleteDocumentTag: { - parameters: { - query: { + get: operations["reissue"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; /** - * @description 삭제할 파일 태그 id 리스트 - * @example [ - * 1, - * 2 - * ] + * 팀 삭제 + * @description 팀을 삭제한다. */ - tagId: number[]; - }; - header?: never; - path: { + delete: operations["deleteTeam"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/teams/{teamId}/time-block/{timeBlockId}/tags": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; /** - * @description 팀 id - * @example 1 + * 타임 블록 파일 태그 삭제 + * @description 타임 블록의 파일 태그를 삭제한다. */ - teamId: number; + delete: operations["deleteDocumentTag"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-member/teams/{teamId}/members/{kickOutMemberId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["kickOutMemberFromTeam"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/team-member/teams/{teamId}/leave": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + delete: operations["leaveTeam"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/api/v1/members/withdrawal": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; /** - * @description 타임 블록 id - * @example 1 + * 회원 탈퇴 + * @description 회원 탈퇴를 진행합니다. */ - timeBlockId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description 성공 */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description 서버 내부 오류 */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - /** @description 클라이언트(요청) 오류 */ - '4xx': { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['ErrorResponse']; - }; - }; - }; - }; - kickOutMemberFromTeam: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - kickOutMemberId: number; - }; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; - }; - }; - }; - }; - leaveTeam: { - parameters: { - query?: never; - header?: never; - path: { - teamId: number; - }; - cookie?: never; + delete: operations["withdrawal"]; + options?: never; + head?: never; + patch?: never; + trace?: never; }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - '*/*': components['schemas']['SuccessResponseObject']; +} +export type webhooks = Record; +export interface components { + schemas: { + TeamCreateRequest: { + name: string; + /** @enum {string} */ + category: "전체" | "학술연구" | "문화예술" | "스포츠레저" | "사회활동" | "취미활동" | "창업비즈니스" | "과학기술" | "종교" | "국제교류" | "네트워킹"; + iconImageUrl: string; + }; + SuccessResponseTeamCreateResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamCreateResponse"]; + }; + TeamCreateResponse: { + /** Format: int64 */ + teamId: number; + }; + ErrorResponse: { + success: boolean; + message: string; + }; + TimeBlockCreateRequest: { + name: string; + color: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + /** @enum {string} */ + blockType: "MEETING" | "RECRUITING" | "STUDY" | "EVENT" | "NOTICE" | "ETC"; + documentIds: number[]; + }; + SuccessResponseTimeBlockCreateResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TimeBlockCreateResponse"]; + }; + TimeBlockCreateResponse: { + /** Format: int64 */ + timeBlockId: number; + }; + SuccessResponseObject: { + success: boolean; + message: string; + data?: Record; + }; + FolderCreateRequest: { + /** + * @description 폴더 이름 + * @example 폴더 1 + */ + name: string; + }; + FolderCreateResponse: { + /** Format: int64 */ + folderId: number; + }; + SuccessResponseFolderCreateResponse: { + success: boolean; + message: string; + data?: components["schemas"]["FolderCreateResponse"]; + }; + DocumentCreateRequest: { + /** + * @description 파일 이름 + * @example tiki.jpg + */ + fileName: string; + /** + * @description 파일 url + * @example https://.../tiki.jpg + */ + fileUrl: string; + /** + * @description 파일 key + * @example ....jpg + */ + fileKey: string; + /** + * Format: int64 + * @description 파일 용량 (단위 : byte) + * @example 123 + */ + capacity: number; + }; + DocumentsCreateRequest: { + documents: components["schemas"]["DocumentCreateRequest"][]; + }; + DocumentCreateResponse: { + /** Format: int64 */ + documentId: number; + }; + DocumentsCreateResponse: { + response: components["schemas"]["DocumentCreateResponse"][]; + }; + SuccessResponseDocumentsCreateResponse: { + success: boolean; + message: string; + data?: components["schemas"]["DocumentsCreateResponse"]; + }; + NoteTemplateCreateRequest: { + title: string; + complete: boolean; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + answerWhatActivity: string; + answerHowToPrepare: string; + answerWhatIsDisappointedThing: string; + answerHowToFix: string; + timeBlockIds: number[]; + documentIds: number[]; + /** Format: int64 */ + teamId: number; + }; + NoteCreateServiceResponse: { + /** Format: int64 */ + noteId: number; + }; + SuccessResponseNoteCreateServiceResponse: { + success: boolean; + message: string; + data?: components["schemas"]["NoteCreateServiceResponse"]; + }; + NoteFreeCreateRequest: { + title: string; + complete: boolean; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + contents: string; + timeBlockIds: number[]; + documentIds: number[]; + /** Format: int64 */ + teamId: number; + }; + MemberProfileCreateRequest: { + name: string; + /** Format: date */ + birth: string; + /** @enum {string} */ + univ: "건국대학교"; + email: string; + password: string; + passwordChecker: string; + }; + S3DeleteRequest: { + fileKey: string; + }; + EmailRequest: { + email: string; + }; + CodeVerificationRequest: { + email: string; + code: string; + }; + SignInRequest: { + email: string; + password: string; + }; + SignInGetResponse: { + accessToken: string; + refreshToken: string; + }; + SuccessResponseSignInGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["SignInGetResponse"]; + }; + TimeBlockUpdateRequest: { + name: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + }; + TeamInformUpdateRequest: { + teamName: string; + teamUrl: string; + }; + FolderNameUpdateRequest: { + /** + * @description 수정할 폴더 이름 + * @example 수정할 폴더 1 + */ + name: string; + }; + UpdateTeamMemberNameRequest: { + newName: string; + }; + NoteTemplateUpdateRequest: { + title: string; + complete: boolean; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + answerWhatActivity: string; + answerHowToPrepare: string; + answerWhatIsDisappointedThing: string; + answerHowToFix: string; + timeBlockIds: number[]; + documentIds: number[]; + /** Format: int64 */ + teamId: number; + }; + NoteFreeUpdateRequest: { + title: string; + complete: boolean; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + contents: string; + timeBlockIds: number[]; + documentIds: number[]; + /** Format: int64 */ + teamId: number; + }; + PasswordChangeRequest: { + email: string; + password: string; + passwordChecker: string; + }; + SuccessResponseTeamsGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamsGetResponse"]; + }; + TeamGetResponse: { + /** Format: int64 */ + teamId: number; + name: string; + /** @enum {string} */ + category: "전체" | "학술연구" | "문화예술" | "스포츠레저" | "사회활동" | "취미활동" | "창업비즈니스" | "과학기술" | "종교" | "국제교류" | "네트워킹"; + /** @enum {string} */ + univ: "건국대학교"; + overview: string; + imageUrl: string; + }; + TeamsGetResponse: { + teams: components["schemas"]["TeamGetResponse"][]; + }; + DeletedDocumentGetResponse: { + /** Format: int64 */ + documentId: number; + name: string; + url: string; + /** Format: int64 */ + capacity: number; + }; + DeletedDocumentsGetResponse: { + deletedDocuments: components["schemas"]["DeletedDocumentGetResponse"][]; + }; + SuccessResponseDeletedDocumentsGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["DeletedDocumentsGetResponse"]; + }; + SuccessResponseTimelineGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TimelineGetResponse"]; + }; + TimeBlockGetResponse: { + /** Format: int64 */ + timeBlockId: number; + name: string; + color: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + /** @enum {string} */ + blockType: "MEETING" | "RECRUITING" | "STUDY" | "EVENT" | "NOTICE" | "ETC"; + }; + TimelineGetResponse: { + timeBlocks: components["schemas"]["TimeBlockGetResponse"][]; + }; + DocumentDetailGetResponse: { + /** Format: int64 */ + documentId: number; + fileName: string; + fileUrl: string; + /** Format: int64 */ + capacity: number; + /** Format: int64 */ + tagId: number; + }; + NoteNameGetResponse: { + /** Format: int64 */ + noteId: number; + noteName: string; + }; + SuccessResponseTimeBlockDetailGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TimeBlockDetailGetResponse"]; + }; + TimeBlockDetailGetResponse: { + documents: components["schemas"]["DocumentDetailGetResponse"][]; + notes: components["schemas"]["NoteNameGetResponse"][]; + }; + AllTimeBlockServiceResponse: { + tImeBlockTaggingResponses: components["schemas"]["TImeBlockTaggingResponse"][]; + }; + SuccessResponseAllTimeBlockServiceResponse: { + success: boolean; + message: string; + data?: components["schemas"]["AllTimeBlockServiceResponse"]; + }; + TImeBlockTaggingResponse: { + /** Format: int64 */ + timeBlockId: number; + name: string; + /** @enum {string} */ + type: "MEETING" | "RECRUITING" | "STUDY" | "EVENT" | "NOTICE" | "ETC"; + color: string; + /** Format: date */ + startDate: string; + }; + SuccessResponseTeamInformGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamInformGetResponse"]; + }; + TeamInformGetResponse: { + teamName: string; + /** @enum {string} */ + university: "건국대학교"; + teamIconUrl: string; + /** Format: date */ + namingUpdatedAt: string; + }; + FolderInfoGetResponse: { + /** Format: int64 */ + id: number; + name: string; + /** Format: date-time */ + createdTime: string; + path: string; + }; + FoldersGetResponse: { + folders: components["schemas"]["FolderInfoGetResponse"][]; + }; + SuccessResponseFoldersGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["FoldersGetResponse"]; + }; + DocumentGetResponse: { + /** Format: int64 */ + documentId: number; + name: string; + url: string; + /** Format: int64 */ + capacity: number; + /** Format: date-time */ + createdTime: string; + type: string; + }; + DriveGetResponse: { + documents: components["schemas"]["DocumentGetResponse"][]; + folders: components["schemas"]["FolderGetResponse"][]; + }; + FolderGetResponse: { + /** Format: int64 */ + folderId: number; + name: string; + /** Format: date-time */ + createdTime: string; + path: string; + type: string; + }; + SuccessResponseDriveGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["DriveGetResponse"]; + }; + DocumentInfoGetResponse: { + /** Format: int64 */ + documentId: number; + name: string; + url: string; + /** Format: int64 */ + capacity: number; + /** Format: date-time */ + createdTime: string; + }; + DocumentsGetResponse: { + documents: components["schemas"]["DocumentInfoGetResponse"][]; + }; + SuccessResponseDocumentsGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["DocumentsGetResponse"]; + }; + SuccessResponseUsageGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["UsageGetResponse"]; + }; + UsageGetResponse: { + /** Format: int64 */ + capacity: number; + /** Format: int64 */ + usage: number; + }; + CategoriesGetResponse: { + categories: ("전체" | "학술연구" | "문화예술" | "스포츠레저" | "사회활동" | "취미활동" | "창업비즈니스" | "과학기술" | "종교" | "국제교류" | "네트워킹")[]; + }; + SuccessResponseCategoriesGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["CategoriesGetResponse"]; + }; + SuccessResponseTeamMembersGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamMembersGetResponse"]; + }; + TeamMemberGetResponse: { + name: string; + /** @enum {string} */ + position: "ADMIN" | "EXECUTIVE" | "MEMBER"; + email: string; + }; + TeamMembersGetResponse: { + teamMemberGetResponses: components["schemas"]["TeamMemberGetResponse"][]; + }; + MemberTeamInformGetResponse: { + /** @enum {string} */ + position: "ADMIN" | "EXECUTIVE" | "MEMBER"; + name: string; + }; + SuccessResponseMemberTeamInformGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["MemberTeamInformGetResponse"]; + }; + SuccessResponseTeamInvitationInformGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamInvitationInformGetResponse"]; + }; + TeamInvitationInformGetResponse: { + sender: string; + teamName: string; + teamIconUrl: string; + /** Format: int64 */ + teamId: number; + }; + SuccessResponseTeamInvitationEmailsGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["TeamInvitationEmailsGetResponse"]; + }; + TeamInvitationEmailGetResponse: { + email: string; + }; + TeamInvitationEmailsGetResponse: { + teamInvitationEmailGetResponses: components["schemas"]["TeamInvitationEmailGetResponse"][]; + }; + NoteGetResponse: { + /** Format: int64 */ + noteId: number; + title: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + author: string; + complete: boolean; + /** Format: date-time */ + lastUpdatedAt: string; + }; + NoteListGetServiceResponse: { + noteGetResponseList: components["schemas"]["NoteGetResponse"][]; + }; + SuccessResponseNoteListGetServiceResponse: { + success: boolean; + message: string; + data?: components["schemas"]["NoteListGetServiceResponse"]; + }; + DocumentTagGetServiceResponse: { + /** Format: int64 */ + id: number; + fileName: string; + fileUrl: string; + /** Format: int64 */ + capacity: number; + }; + NoteFreeDetailGetServiceResponse: { + /** Format: int64 */ + noteId: number; + /** @enum {string} */ + noteType: "FREE" | "TEMPLATE"; + title: string; + author: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + complete: boolean; + contents: string; + documentList: components["schemas"]["DocumentTagGetServiceResponse"][]; + timeBlockList: components["schemas"]["TimeBlockTagServiceResponse"][]; + }; + NoteTemplateDetailGetServiceResponse: { + /** Format: int64 */ + noteId: number; + /** @enum {string} */ + noteType: "FREE" | "TEMPLATE"; + title: string; + author: string; + /** Format: date */ + startDate: string; + /** Format: date */ + endDate: string; + complete: boolean; + answerWhatActivity: string; + answerHowToPrepare: string; + answerWhatIsDisappointedThing: string; + answerHowToFix: string; + documentList: components["schemas"]["DocumentTagGetServiceResponse"][]; + timeBlockList: components["schemas"]["TimeBlockTagServiceResponse"][]; + }; + SuccessNoteDetailResponse: { + success: boolean; + message: string; + /** @description 응답 데이터 */ + data?: components["schemas"]["NoteFreeDetailGetServiceResponse"] | components["schemas"]["NoteTemplateDetailGetServiceResponse"]; + }; + TimeBlockTagServiceResponse: { + /** Format: int64 */ + id: number; + name: string; + color: string; + /** @enum {string} */ + blockType: "MEETING" | "RECRUITING" | "STUDY" | "EVENT" | "NOTICE" | "ETC"; + /** Format: date */ + startDate: string; + }; + BelongTeamGetResponse: { + /** Format: int64 */ + id: number; + name: string; + iconImageUrl: string; + }; + BelongTeamsGetResponse: { + belongTeamGetResponses: components["schemas"]["BelongTeamGetResponse"][]; + }; + SuccessResponseBelongTeamsGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["BelongTeamsGetResponse"]; + }; + MemberInfoGetResponse: { + Email: string; + name: string; + /** Format: date */ + birth: string; + University: string; + }; + SuccessResponseMemberInfoGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["MemberInfoGetResponse"]; + }; + PutObjectPreSignedUrlResponse: { + fileName: string; + url: string; + }; + SuccessResponsePutObjectPreSignedUrlResponse: { + success: boolean; + message: string; + data?: components["schemas"]["PutObjectPreSignedUrlResponse"]; + }; + SuccessResponse: { + success: boolean; + message: string; + data?: Record; + }; + ReissueGetResponse: { + accessToken: string; + }; + SuccessResponseReissueGetResponse: { + success: boolean; + message: string; + data?: components["schemas"]["ReissueGetResponse"]; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + getAllTeams: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamsGetResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamsGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamsGetResponse"]; + }; + }; + }; + }; + createTeam: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TeamCreateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamCreateResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamCreateResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamCreateResponse"]; + }; + }; + }; + }; + getTrash: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseDeletedDocumentsGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + restore: { + parameters: { + query: { + /** + * @description 복구할 파일 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + documentId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + deleteTrash: { + parameters: { + query: { + /** + * @description 삭제할 파일 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + documentId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createTimeBlock: { + parameters: { + query: { + /** + * @description 타임라인 타입 + * @example executive, member + */ + type: string; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TimeBlockCreateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTimeBlockCreateResponse"]; + }; + }; + /** @description 타입 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원, 유효하지 않은 팀 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getTimeBlockDetail: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 타임 블록 id + * @example 1 + */ + timeBlockId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTimeBlockDetailGetResponse"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createDocumentTag: { + parameters: { + query: { + /** + * @description 추가할 파일 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + documentId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 타임 블록 id + * @example 1 + */ + timeBlockId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + deleteTimeBlock: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 타임 블록 id + * @example 1 + */ + timeBlockId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + updateTimeBlock: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 타임 블록 id + * @example 1 + */ + timeBlockId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TimeBlockUpdateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원, 유효하지 않은 타임 블록 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getFolders: { + parameters: { + query?: { + /** + * @description 조회할 폴더 id (최상단은 비워두기) + * @example 1 + */ + folderId?: number; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseFoldersGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createFolder: { + parameters: { + query?: { + /** + * @description 생성할 폴더가 속할 폴더 id (최상단은 비워두기) + * @example 1 + */ + folderId?: number; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FolderCreateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseFolderCreateResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + delete: { + parameters: { + query: { + /** + * @description 삭제할 폴더 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + folderId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getDocuments: { + parameters: { + query?: { + /** + * @description 조회할 폴더 id (최상단은 비워두기) + * @example 1 + */ + folderId?: number; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseDocumentsGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createDocuments: { + parameters: { + query?: { + /** + * @description 생성할 파일이 속할 폴더 id + * @example 1 + */ + folderId?: number; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DocumentsCreateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseDocumentsCreateResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + delete_1: { + parameters: { + query: { + /** + * @description 삭제할 파일 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + documentId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createTeamMemberFromInvitation: { + parameters: { + query: { + teamId: number; + teamInvitationId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + createNoteTemplate: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NoteTemplateCreateRequest"]; + }; + }; + responses: { + /** @description 노트 생성 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseNoteCreateServiceResponse"]; + }; + }; + /** @description 요청 데이터 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + createNoteFree: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NoteFreeCreateRequest"]; + }; + }; + responses: { + /** @description 노트 생성 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseNoteCreateServiceResponse"]; + }; + }; + /** @description 요청 데이터 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + signUp: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["MemberProfileCreateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 비밀번호 불일치 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 이미 가입된 아이디 */ + 409: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + deleteFile: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["S3DeleteRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description S3 버킷의 파일 삭제 실패 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + sendSignUpMail: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EmailRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 이메일 형식 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 이미 가입된 아이디 */ + 409: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + sendChangingPasswordMail: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EmailRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 이메일 형식 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 가입되지 않은 이메일 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + checkCode: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CodeVerificationRequest"]; + }; + }; + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + sendInvitationMail: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["EmailRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 이미 존재하는 팀원 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀이 존재하지 않음 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + signIn: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SignInRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseSignInGetResponse"]; + }; + }; + /** @description Created */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseSignInGetResponse"]; + }; + }; + /** @description 일치하지 않은 비밀번호 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + alterAdmin: { + parameters: { + query?: never; + header?: never; + path: { + /** @description 팀 ID */ + teamId: number; + /** @description 권한 변경 대상 ID */ + targetId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + getTeamName: { + parameters: { + query?: never; + header?: never; + path: { + /** @description 팀 ID */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamInformGetResponse"]; + }; + }; + /** @description 존재하지 않는 팀 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamInformGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamInformGetResponse"]; + }; + }; + }; + }; + updateTeamInform: { + parameters: { + query?: never; + header?: never; + path: { + /** @description 팀 ID */ + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TeamInformUpdateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + updateFolderName: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 수정할 폴더 id + * @example 1 + */ + folderId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["FolderNameUpdateRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + updateTeamMemberName: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateTeamMemberNameRequest"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + updateNoteTemplate: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 노트 id + * @example 1 + */ + noteId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NoteTemplateUpdateRequest"]; + }; + }; + responses: { + /** @description 노트 수정 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 요청 데이터 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 존재하지 않는 노트 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + updateNoteFree: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 노트 id + * @example 1 + */ + noteId: number; + }; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NoteFreeUpdateRequest"]; + }; + }; + responses: { + /** @description 노트 수정 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 요청 데이터 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 존재하지 않는 노트 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + changePassword: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PasswordChangeRequest"]; + }; + }; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 비밀번호가 일치하지 않습니다. */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getTimeline: { + parameters: { + query: { + /** + * @description 타임라인 타입 + * @example executive, member + */ + type: string; + /** + * @description 조회할 타임라인의 년도와 월 정보 + * @example 2024-07 + */ + date: string; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTimelineGetResponse"]; + }; + }; + /** @description 타입 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원, 유효하지 않은 팀 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getAllTimeBlock: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseAllTimeBlockServiceResponse"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getDrive: { + parameters: { + query?: { + /** + * @description 조회할 폴더 id (최상단은 비워두기) + * @example 1 + */ + folderId?: number; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseDriveGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getCapacityInfo: { + parameters: { + query?: never; + header?: never; + path: { + /** @description 팀 ID */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseUsageGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseUsageGetResponse"]; + }; + }; + }; + }; + getCategories: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseCategoriesGetResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseCategoriesGetResponse"]; + }; + }; + }; + }; + getMembers: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamMembersGetResponse"]; + }; + }; + }; + }; + getMemberTeamInform: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseMemberTeamInformGetResponse"]; + }; + }; + }; + }; + getInvitationInform: { + parameters: { + query: { + invitationId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamInvitationInformGetResponse"]; + }; + }; + }; + }; + deleteTeamInvitationFromUser: { + parameters: { + query: { + invitationId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + getTeamInvitation: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseTeamInvitationEmailsGetResponse"]; + }; + }; + }; + }; + deleteTeamInvitationFromAdmin: { + parameters: { + query: { + invitationId: number; + }; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + getNote: { + parameters: { + query?: { + /** + * @description 생성시간 + * @example yyyy-MM-dd'T'HH:mm:ss.nnnnnnnnn + */ + createdAt?: string; + /** + * @description 정렬 순서 + * @example ASC, DESC + */ + sortOrder?: "ASC" | "DESC"; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 조회 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseNoteListGetServiceResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + deleteNotes: { + parameters: { + query: { + /** + * @description 노트 id 리스트 + * @example [ + * 1, + * 2, + * 3, + * 4, + * 5 + * ] + */ + noteIds: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 삭제 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 요청 데이터 오류 */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getNoteDetail: { + parameters: { + query?: never; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 노트 id + * @example 1 + */ + noteId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 조회 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["SuccessNoteDetailResponse"]; + }; + }; + /** @description 접근 권한 없음(토큰 에러) */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getBelongTeam: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseBelongTeamsGetResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getMemberInfo: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseMemberInfoGetResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getPreSignedUrl: { + parameters: { + query: { + /** + * @description 파일 형식 + * @example hwp, pdf, ... + */ + fileFormat: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponsePutObjectPreSignedUrlResponse"]; + }; + }; + /** @description S3 PRESIGNED URL 불러오기 실패 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + getAllDocuments: { + parameters: { + query: { + /** + * @description 타임라인 타입 + * @example executive, member + */ + type: string; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseDocumentsGetResponse"]; + }; + }; + /** @description 접근 권한 없음 */ + 403: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 팀에 존재하지 않는 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + reissue: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 201: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseReissueGetResponse"]; + }; + }; + /** @description 유효하지 않은 키, 인증되지 않은 사용자 */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponse"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + deleteTeam: { + parameters: { + query?: never; + header?: never; + path: { + /** @description 팀 ID */ + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deleteDocumentTag: { + parameters: { + query: { + /** + * @description 삭제할 파일 태그 id 리스트 + * @example [ + * 1, + * 2 + * ] + */ + tagId: number[]; + }; + header?: never; + path: { + /** + * @description 팀 id + * @example 1 + */ + teamId: number; + /** + * @description 타임 블록 id + * @example 1 + */ + timeBlockId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + }; + }; + kickOutMemberFromTeam: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + kickOutMemberId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + leaveTeam: { + parameters: { + query?: never; + header?: never; + path: { + teamId: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + }; + }; + withdrawal: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description 성공 */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["SuccessResponseObject"]; + }; + }; + /** @description 유효하지 않은 회원 */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 서버 내부 오류 */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; + /** @description 클라이언트(요청) 오류 */ + "4xx": { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["ErrorResponse"]; + }; + }; }; - }; }; - }; } From 817d409409f9adac293d366059b200dce40f2e3c Mon Sep 17 00:00:00 2001 From: namdaeun Date: Mon, 3 Mar 2025 16:09:06 +0900 Subject: [PATCH 04/10] =?UTF-8?q?feat:=20=EB=AA=A8=EB=8B=AC=20=EC=9D=B4?= =?UTF-8?q?=EC=A0=84=20=EB=82=B4=EC=9A=A9=20=EB=B3=B4=EC=A1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkSpaceModal/category/WorkSpaceCategory.tsx | 6 +++--- .../WorkSpaceModal/complete/WorkSpaceComplete.tsx | 7 ++----- .../component/WorkSpaceModal/image/WorkSpaceImage.tsx | 6 ++---- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/apps/client/src/shared/component/WorkSpaceModal/category/WorkSpaceCategory.tsx b/apps/client/src/shared/component/WorkSpaceModal/category/WorkSpaceCategory.tsx index 5eb836e2..f5ae877b 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/category/WorkSpaceCategory.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/category/WorkSpaceCategory.tsx @@ -11,8 +11,8 @@ import { useWorkSpaceContext } from '@/shared/hook/common/useWorkSpaceContext'; type Category = components['schemas']['TeamCreateRequest']['category']; const WorkSpaceCategory = () => { - const { setFormData } = useWorkSpaceContext(); - const { nextStep } = useFunnel(); + const { setFormData, formData } = useWorkSpaceContext(); + const { prevStep, nextStep } = useFunnel(); const [selected, setSelected] = useState(''); @@ -49,7 +49,7 @@ const WorkSpaceCategory = () => { className="select-container" /> - + ); }; diff --git a/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx b/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx index 980920de..9f7b56e6 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx @@ -1,6 +1,5 @@ import { useQueryClient } from '@tanstack/react-query'; -import completePng from '@/common/asset/img/workspace_complete.png'; import complete from '@/common/asset/img/workspace_complete.webp'; import { $api } from '@/shared/api/client'; @@ -27,9 +26,7 @@ const WorkSpaceComplete = () => { }, { onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: ['get', '/api/v1/members/teams'], - }); + queryClient.invalidateQueries({ queryKey: ['get', '/api/v1/members/teams'] }); closeModal(); }, @@ -46,7 +43,7 @@ const WorkSpaceComplete = () => { 워크 스페이스 생성 완료 diff --git a/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx b/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx index 51c4c7bc..e4ae1e51 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx @@ -13,9 +13,7 @@ import { useFunnel } from '@/shared/hook/common/useFunnel'; const WorkSpaceImage = () => { const { fileURL, imgUploadInput, handleImageChange, handleImageRemove } = useImageUpload(); - const { nextStep } = useFunnel(); - - const isDisabled = !fileURL; + const { prevStep, nextStep } = useFunnel(); return ( <> @@ -42,7 +40,7 @@ const WorkSpaceImage = () => { /> - nextStep()} disabled={isDisabled} /> + nextStep()} disabled={false} /> ); }; From 68112104cb63c1ab49321dc8c59f2d63889639b7 Mon Sep 17 00:00:00 2001 From: namdaeun Date: Tue, 11 Mar 2025 23:31:15 +0900 Subject: [PATCH 05/10] =?UTF-8?q?chore:=20=EC=8A=A4=ED=82=A4=EB=A7=88=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/shared/__generated__/schema.d.ts | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/apps/client/src/shared/__generated__/schema.d.ts b/apps/client/src/shared/__generated__/schema.d.ts index 29a901ca..7eb55eb0 100644 --- a/apps/client/src/shared/__generated__/schema.d.ts +++ b/apps/client/src/shared/__generated__/schema.d.ts @@ -904,7 +904,7 @@ export interface components { name: string; /** @enum {string} */ category: "전체" | "학술연구" | "문화예술" | "스포츠레저" | "사회활동" | "취미활동" | "창업비즈니스" | "과학기술" | "종교" | "국제교류" | "네트워킹"; - iconImageUrl: string; + iconImageKey: string; }; SuccessResponseTeamCreateResponse: { success: boolean; @@ -966,11 +966,6 @@ export interface components { * @example tiki.jpg */ fileName: string; - /** - * @description 파일 url - * @example https://.../tiki.jpg - */ - fileUrl: string; /** * @description 파일 key * @example ....jpg @@ -1230,7 +1225,7 @@ export interface components { teamName: string; /** @enum {string} */ university: "건국대학교"; - teamIconUrl: string; + iconImageUrl: string; /** Format: date */ namingUpdatedAt: string; }; @@ -1469,14 +1464,14 @@ export interface components { message: string; data?: components["schemas"]["MemberInfoGetResponse"]; }; - PutObjectPreSignedUrlResponse: { - fileName: string; + PreSignedUrlResponse: { + fileKey: string; url: string; }; - SuccessResponsePutObjectPreSignedUrlResponse: { + SuccessResponsePreSignedUrlResponse: { success: boolean; message: string; - data?: components["schemas"]["PutObjectPreSignedUrlResponse"]; + data?: components["schemas"]["PreSignedUrlResponse"]; }; SuccessResponse: { success: boolean; @@ -4054,7 +4049,7 @@ export interface operations { [name: string]: unknown; }; content: { - "*/*": components["schemas"]["SuccessResponsePutObjectPreSignedUrlResponse"]; + "*/*": components["schemas"]["SuccessResponsePreSignedUrlResponse"]; }; }; /** @description S3 PRESIGNED URL 불러오기 실패 */ From 83ba421519a69fc7c0dfec9604499fb85d09bf01 Mon Sep 17 00:00:00 2001 From: namdaeun Date: Tue, 11 Mar 2025 23:31:44 +0900 Subject: [PATCH 06/10] =?UTF-8?q?fix:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=9D=B4=EC=8A=88=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/client/src/shared/api/external/index.ts | 4 +- apps/client/src/shared/api/file/type.ts | 2 +- .../src/shared/api/file/upload/index.ts | 6 +- .../complete/WorkSpaceComplete.tsx | 22 +++--- .../hook/common/useImageUpload.tsx | 68 +++++++++++-------- .../WorkSpaceModal/image/WorkSpaceImage.tsx | 8 ++- apps/client/src/shared/constant/index.ts | 2 + .../src/shared/hook/api/useGetFileQuery.ts | 1 + .../hook/common/useWorkSpaceContext.tsx | 9 ++- 9 files changed, 74 insertions(+), 48 deletions(-) diff --git a/apps/client/src/shared/api/external/index.ts b/apps/client/src/shared/api/external/index.ts index 3f844551..5b1a91e9 100644 --- a/apps/client/src/shared/api/external/index.ts +++ b/apps/client/src/shared/api/external/index.ts @@ -2,6 +2,8 @@ import mime from 'mime'; import axios from 'axios'; +import { getFileKey } from '@/shared/util/file'; + export const putUploadToS3 = async (presignedUrl: string, file: File) => { const contentType = mime.getType(file.name) || 'application/octet-stream'; @@ -15,6 +17,6 @@ export const putUploadToS3 = async (presignedUrl: string, file: File) => { // Presigned URL에서 쿼리 문자열을 제거하여 파일 URL을 생성 const uploadedFileUrl = presignedUrl.split('?')[0]; - return uploadedFileUrl; + return getFileKey(uploadedFileUrl); } }; diff --git a/apps/client/src/shared/api/file/type.ts b/apps/client/src/shared/api/file/type.ts index db1cbebf..90d90bfc 100644 --- a/apps/client/src/shared/api/file/type.ts +++ b/apps/client/src/shared/api/file/type.ts @@ -1,3 +1,3 @@ export interface DeleteFile { - fileName: string; + fileKey: string; } diff --git a/apps/client/src/shared/api/file/upload/index.ts b/apps/client/src/shared/api/file/upload/index.ts index a137f5a0..0e2aa624 100644 --- a/apps/client/src/shared/api/file/upload/index.ts +++ b/apps/client/src/shared/api/file/upload/index.ts @@ -1,10 +1,14 @@ +import { paths } from '@/shared/__generated__/schema'; import { axiosInstance } from '@/shared/api/instance'; +type ImageFile = paths['/api/v1/file/upload']['get']['responses']['200']['content']['*/*'] + export const getFile = async (fileFormat: string) => { - const response = await axiosInstance.get('/file/upload', { + const response = await axiosInstance.get('/file/upload', { params: { fileFormat: fileFormat, }, }); + return response.data.data; }; diff --git a/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx b/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx index 9f7b56e6..6f55e412 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/complete/WorkSpaceComplete.tsx @@ -1,9 +1,8 @@ import { useQueryClient } from '@tanstack/react-query'; -import complete from '@/common/asset/img/workspace_complete.webp'; - import { $api } from '@/shared/api/client'; import { Modal } from '@/shared/component/Modal'; +import { IMAGE_PLACEHOLDER } from '@/shared/constant'; import { useWorkSpaceContext } from '@/shared/hook/common/useWorkSpaceContext'; import { useCloseModal } from '@/shared/store/modal'; @@ -13,6 +12,7 @@ const WorkSpaceComplete = () => { const closeModal = useCloseModal(); const { formData } = useWorkSpaceContext(); + console.log(formData); const { mutate: postTeamMutate } = $api.useMutation('post', '/api/v1/teams'); const handleSave = () => { @@ -21,7 +21,7 @@ const WorkSpaceComplete = () => { body: { name: formData.name, category: formData.category, - iconImageUrl: formData.fileUrlData, + iconImageKey: formData.fileKey, }, }, { @@ -39,17 +39,15 @@ const WorkSpaceComplete = () => {
- - - 워크 스페이스 생성 완료 - + (e.currentTarget.src = IMAGE_PLACEHOLDER)} + alt="워크 스페이스 생성 완료" + />
- + ); }; diff --git a/apps/client/src/shared/component/WorkSpaceModal/hook/common/useImageUpload.tsx b/apps/client/src/shared/component/WorkSpaceModal/hook/common/useImageUpload.tsx index dcd278e8..2bb731f3 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/hook/common/useImageUpload.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/hook/common/useImageUpload.tsx @@ -6,28 +6,35 @@ import useGetFileQuery from '@/shared/hook/api/useGetFileQuery'; import { useWorkSpaceContext } from '@/shared/hook/common/useWorkSpaceContext'; const useImageUpload = () => { - const [fileURL, setFileURL] = useState(''); - const imgUploadInput = useRef(null); + const [fileURL, setFileURL] = useState(''); const [file, setFile] = useState(null); + const imgUploadInput = useRef(null); + const { mutate: uploadToS3Mutate } = usePutUploadMutation(); const { mutate: deleteFileMutate } = useDeleteFileMutation(); const { data: fileData, refetch: refetchFileData } = useGetFileQuery(file as File); const { setFormData } = useWorkSpaceContext(); - const handleFileUpload = (selectedFile: File, presignedUrl: string) => { - const newFileURL = URL.createObjectURL(selectedFile); + const handleFileUpload = (fileData: File, presignedUrl: string) => { + const newFileURL = URL.createObjectURL(fileData); setFileURL(newFileURL); + uploadToS3Mutate( - { presignedUrl, file: selectedFile }, + { presignedUrl, file: fileData }, { - onSuccess: (uploadedFileUrl) => { - URL.revokeObjectURL(newFileURL); - if (uploadedFileUrl) { - setFileURL(uploadedFileUrl); - setFormData({ fileUrlData: uploadedFileUrl }); + onSuccess: (response) => { + if (response) { + setFormData({ fileKey: response }); } + + URL.revokeObjectURL(newFileURL); + }, + onError: (error) => { + console.error(error); + + setFormData({ fileKey: '' }); }, } ); @@ -35,43 +42,46 @@ const useImageUpload = () => { const handleImageChange = async (event: React.ChangeEvent) => { const selectedFile = event.target.files?.[0]; - if (selectedFile) { - setFileURL(URL.createObjectURL(selectedFile)); - setFile(selectedFile); - setFormData({ fileUrlData: '' }); - - const { data } = await refetchFileData(); - if (data?.url) { - handleFileUpload(selectedFile, data.url); - } + if (!selectedFile) return; + + setFile(selectedFile); + setFileURL(URL.createObjectURL(selectedFile)); + setFormData({ fileKey: '' , fileUrl: fileData?.url}); + + const { data } = await refetchFileData(); + if (data?.url) { + handleFileUpload(selectedFile, data.url); } }; const handleImageRemove = () => { - if (fileData?.fileName) { + if (fileData?.fileKey) { deleteFileMutate( - { fileName: fileData.fileName }, + { fileKey: fileData.fileKey }, { onSuccess: () => { URL.revokeObjectURL(fileURL); + setFileURL(''); setFile(null); - setFormData({ fileUrlData: '' }); + setFormData({ fileKey: '', fileUrl: '' }); + if (imgUploadInput.current) { imgUploadInput.current.value = ''; } }, } ); - } + }; }; - return { - fileURL, - imgUploadInput, - handleImageChange, - handleImageRemove, - }; + return { + fileURL, + imgUploadInput, + handleImageChange, + handleImageRemove, + }; + }; export default useImageUpload; diff --git a/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx b/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx index e4ae1e51..2ea2d285 100644 --- a/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx +++ b/apps/client/src/shared/component/WorkSpaceModal/image/WorkSpaceImage.tsx @@ -8,6 +8,7 @@ import { imageBoxStyle, imageDeleteStyle, } from '@/shared/component/WorkSpaceModal/image/WorkSpaceImage.style'; +import { IMAGE_PLACEHOLDER } from '@/shared/constant'; import { useFunnel } from '@/shared/hook/common/useFunnel'; const WorkSpaceImage = () => { @@ -22,7 +23,12 @@ const WorkSpaceImage = () => {
{fileURL ? ( - 프로필 이미지 + 프로필 이미지 (e.currentTarget.src = IMAGE_PLACEHOLDER)} + /> ) : (