id : BIGINT PKcreated_at : DATETIME 생성시각updated_at : DATETIME 수정시각deleted_at : DATETIME 소프트삭제(옵션)| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | 사용자 PK |
| VARCHAR(255) | 로그인 이메일(유니크) | |
| nickname | VARCHAR(50) | 닉네임 |
| profile_image_url | VARCHAR(500) | 프로필 이미지 URL |
| github_username | VARCHAR(100) | GitHub 연동용 계정명(옵션) |
| status | ENUM | ACTIVE / SUSPENDED / DELETED |
검색 카드/필터에 필요한 “핵심 표시 정보” 중심
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | 그룹 PK |
| owner_user_id | BIGINT FK(users.id) | 그룹장 |
| name | VARCHAR(60) | 그룹명(필수, 글자수 제한 대상) |
| description | TEXT | 소개(정책상 필수/선택) |
| thumbnail_type | ENUM | UPLOAD / DEFAULT |
| thumbnail_url | VARCHAR(500) | 업로드 썸네일 URL(옵션) |
| default_thumbnail_key | VARCHAR(50) | 기본 이미지 키(옵션) |
| category | ENUM | WAKE / SEATED / COTE / LANGUAGE / CERT / ETC |
| join_type | ENUM | PUBLIC / APPROVAL / INVITE_ONLY |
| min_members | INT | 최소 인원 |
| max_members | INT | 최대 인원(필수 권장) |
| current_member_count | INT | 현재 인원(집계 캐시) |
| waitlist_enabled | BOOLEAN | 대기열 사용 여부 |
| waitlist_policy | ENUM | AUTO / MANUAL (대기자 승인 정책) |
| status | ENUM | RECRUITING / CLOSED |
| start_date | DATE | 시작일(옵션) |
| end_date | DATE | 종료일(옵션) |
| duration_weeks | INT | n주 기간(옵션) |
| is_indefinite | BOOLEAN | 무기한 여부(종료일 미사용) |
| closed_at | DATETIME | 모집 마감 시각 |
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | 태그 PK |
| name | VARCHAR(30) | 태그 원문(유니크 권장) |
| normalized_name | VARCHAR(30) | 검색용 정규화(소문자/공백제거 등) |
| use_count | INT | 사용 횟수(자동완성 정렬용 캐시) |
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | PK |
| group_id | BIGINT FK(study_groups.id) | 그룹 |
| tag_id | BIGINT FK(tags.id) | 태그 |
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | PK |
| group_id | BIGINT FK | 그룹 |
| user_id | BIGINT FK | 사용자 |
| role | ENUM | OWNER / ADMIN / MEMBER |
| status | ENUM | ACTIVE / LEFT / BANNED |
| joined_at | DATETIME | 가입 시각 |
| left_at | DATETIME | 탈퇴 시각 |
join_type=APPROVAL일 때 사용
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | BIGINT | PK |
| group_id | BIGINT FK | 그룹 |
| user_id | BIGINT FK | 신청자 |
| message | VARCHAR(300) | 신청 메시지 |
| status | ENUM | PENDING / APPROVED / REJECTED / CANCELED |
| processed_by | BIGINT FK(users.id) | 처리자(운영자/그룹장) |
| processed_at | DATETIME | 처리 시각 |