diff --git a/package.json b/package.json index 28c15d08..e4448857 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "generate-types-v1": "openapi-typescript https://crew.api.dev.sopt.org/api-docs-json -o ./src/__generated__/schema1.d.ts", - "generate-types-v2": "openapi-typescript https://crew.api.develop.sopt.org/api-docs/json -o ./src/__generated__/schema2.d.ts", + "generate-types-v2": "openapi-typescript https://crew.api.dev.sopt.org/api-docs/json -o ./src/__generated__/schema2.d.ts", "generate-types": "cat ./src/__generated__/schema1.d.ts ./src/__generated__/schema2.d.ts > ./src/__generated__/schema.d.ts", "update-mds": "yarn up @sopt-makers/colors@latest @sopt-makers/fonts@latest @sopt-makers/playground-common@latest @sopt-makers/ui@latest @sopt-makers/icons@latest" }, @@ -93,4 +93,4 @@ "workspaces": [ "packages/*" ] -} +} \ No newline at end of file diff --git a/src/__generated__/schema2.d.ts b/src/__generated__/schema2.d.ts index b0dc9dcc..3670aff9 100644 --- a/src/__generated__/schema2.d.ts +++ b/src/__generated__/schema2.d.ts @@ -129,6 +129,9 @@ export interface paths { /** 내가 신청한 모임 조회 */ get: operations["getAppliedMeetingByUser"]; }; + "/sentry": { + get: operations["testSentry"]; + }; "/post/v2/count": { /** 모임 게시글 개수 조회 */ get: operations["getPostCount"]; @@ -147,6 +150,13 @@ export interface paths { */ get: operations["getAppliesCsvFileUrl"]; }; + "/meeting/v2/recommend": { + /** + * 추천 모임 목록 조회 + * @description 추천 모임 목록 조회, 쿼리파라미터가 없는 경우 '지금 모집중인 모임' 반환 + */ + get: operations["getRecommendMeetingsByIds"]; + }; "/meeting/v2/presigned-url": { /** * Meeting 썸네일 업로드용 Pre-Signed URL 발급 @@ -162,6 +172,16 @@ export interface paths { /** 모임 둘러보기 조회 */ get: operations["getMeetingBanner"]; }; + "/internal/meetings": { + /** + * [Internal] 모임 전체 조회/검색/필터링 + * @description 모임 전체 조회/검색/필터링 + */ + get: operations["getMeetings_1"]; + }; + "/internal/meeting/stats/approved-studies/{orgId}": { + get: operations["getApprovedStudyCountByOrgId"]; + }; "/advertisement/v2": { /** * 광고 조회 @@ -1456,11 +1476,6 @@ export interface components { joinableParts: ("PM" | "DESIGN" | "IOS" | "ANDROID" | "SERVER" | "WEB")[]; /** @description 공동 모임장 목록 */ coMeetingLeaders?: components["schemas"]["MeetingV2CoLeaderResponseDto"][]; - /** - * @description 공동 모임장 여부 - * @example false - */ - isCoLeader: boolean; /** * Format: int32 * @description 모임 상태, 0: 모집전, 1: 모집중, 2: 모집종료 @@ -1582,6 +1597,11 @@ export interface components { */ url: string; }; + /** @description 추천 모임 목록 조회 응답 Dto */ + MeetingV2GetRecommendDto: { + /** @description 모임 객체 목록 */ + meetings: components["schemas"]["MeetingResponseDto"][]; + }; /** @description presigned 필드 Dto */ PreSignedUrlFieldResponseDto: { /** @@ -1792,6 +1812,72 @@ export interface components { */ profileImage?: string; }; + /** @description [Internal] 모임 목록 조회 응답 Dto */ + InternalMeetingGetAllMeetingDto: { + /** @description 모임 객체 목록 */ + meetings: components["schemas"]["InternalMeetingResponseDto"][]; + meta: components["schemas"]["PageMetaDto"]; + }; + /** @description [Internal] 모임 조회 응답 Dto */ + InternalMeetingResponseDto: { + /** + * Format: int32 + * @description 모임 객체 목록 + */ + id?: number; + /** @description 모임 제목 */ + title?: string; + /** + * @description 활동 기수만 신청가능한 여부 + * @example false + */ + canJoinOnlyActiveGeneration?: boolean; + /** + * @description 모임 상태, BEFORE_START: 모집전, APPLY_ABLE: 모집중, RECRUITMENT_COMPLETE: 모집종료 + * @example APPLY_ABLE + * @enum {string} + */ + status?: "BEFORE_START" | "APPLY_ABLE" | "RECRUITMENT_COMPLETE"; + /** + * @description 모임 이미지 + * @example [url 형식] + */ + imageUrl?: string; + /** + * @description 모임 분류, [스터디 or 행사 or 세미나] + * @example 스터디 + * @enum {string} + */ + category: "스터디" | "행사" | "세미나"; + /** + * @description 대상 파트 목록 + * @example [ + * "ANDROID", + * "IOS" + * ] + */ + joinableParts: ("PM" | "DESIGN" | "IOS" | "ANDROID" | "SERVER" | "WEB")[]; + /** + * @description 모임 차단 여부 + * @example false + */ + isBlockedMeeting?: boolean; + }; + /** @description 승인된 스터디 수를 나타내는 DTO */ + ApprovedStudyCountResponseDto: { + /** + * Format: int32 + * @description 플레이그라운드 유저 ID(orgId) + * @example 1 + */ + orgId?: number; + /** + * Format: int64 + * @description 승인된 스터디 수 + * @example 5 + */ + approvedStudyCount?: number; + }; /** @description 댓글 객체 응답 Dto */ CommentDto: { /** @@ -2526,6 +2612,16 @@ export interface operations { }; }; }; + testSentry: { + responses: { + /** @description OK */ + 200: { + content: { + "application/json;charset=UTF-8": string; + }; + }; + }; + }; /** 모임 게시글 개수 조회 */ getPostCount: { parameters: { @@ -2604,6 +2700,35 @@ export interface operations { }; }; }; + /** + * 추천 모임 목록 조회 + * @description 추천 모임 목록 조회, 쿼리파라미터가 없는 경우 '지금 모집중인 모임' 반환 + */ + getRecommendMeetingsByIds: { + parameters: { + query?: { + /** + * @description 추천할 모임들의 ID 리스트 + * @example [ + * 101, + * 102, + * 103 + * ] + */ + meetingIds?: number[]; + }; + }; + responses: { + /** @description 추천 모임 목록 조회 성공 */ + 200: { + content: { + "application/json;charset=UTF-8": components["schemas"]["MeetingV2GetRecommendDto"]; + }; + }; + /** @description 모임이 없습니다. */ + 400: never; + }; + }; /** * Meeting 썸네일 업로드용 Pre-Signed URL 발급 * @description Meeting 썸네일 업로드용 Pre-Signed URL 발급합니다. @@ -2666,6 +2791,60 @@ export interface operations { 204: never; }; }; + /** + * [Internal] 모임 전체 조회/검색/필터링 + * @description 모임 전체 조회/검색/필터링 + */ + getMeetings_1: { + parameters: { + query: { + orgId: number; + /** + * @description 페이지 + * @example 1 + */ + page: number; + /** + * @description 가져올 데이터 개수 + * @example 10 + */ + take: number; + /** + * @description 카테고리 + * @example [스터디, 행사, 세미나] + */ + category: string[]; + /** + * @description 활동기수만 참여여부 + * @example true + */ + isOnlyActiveGeneration: boolean; + }; + }; + responses: { + /** @description 모임 목록 조회 성공 */ + 200: { + content: { + "application/json;charset=UTF-8": components["schemas"]["InternalMeetingGetAllMeetingDto"]; + }; + }; + }; + }; + getApprovedStudyCountByOrgId: { + parameters: { + path: { + orgId: number; + }; + }; + responses: { + /** @description OK */ + 200: { + content: { + "application/json;charset=UTF-8": components["schemas"]["ApprovedStudyCountResponseDto"]; + }; + }; + }; + }; /** * 광고 조회 * @description 게시글 목록 페이지일 경우, ?category=POST
모임 목록 페이지일 경우, ?category=MEETING