인증 방식별 테이블

인증 시간 외 제출은 아예 차단되게 ? 아님 받고 boolean으로 처리 ?

깃허브 커밋 인증. 정규식 규칙 미충족 시 안되게 ? 아님 받고 boolean으로 처리 ?

1) group_photo_verification (사진 인증)

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
min_files INT 최소 장수
max_files INT 최대 장수
source_policy ENUM CAMERA_ONLY / ALBUM_ALLOWED
max_file_size_mb INT 파일 용량 제한
allowed_extensions VARCHAR(100) 허용 확장자(예: jpg,png)

2) group_checklist_verification (체크리스트 인증)

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
title VARCHAR(80) 체크 항목명(예: 문제 3개 풀이)
description VARCHAR(200) 부가 설명(옵션)
sort_order INT 정렬

3) group_gps_verification (GPS 인증)

1번 방장이 지정한 위치 반경 (위치 설정)

2번 방장은 반경만 설정하고. 그룹원이 가입할 때 위치를 지정함. 그 위치의 반경에서 인증.

반경은 기본값으로.

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
radius_mode ENUM COMMON / PER_LOCATION

3-1) group_gps_locations (GPS 기준 위치들)

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
user_id BIGINT FK 사용자 ID
name VARCHAR(50) 위치명(집/도서관 등)
latitude DECIMAL(10,7) 위도
longitude DECIMAL(10,7) 경도
is_active BOOLEAN 사용 여부

4) group_github_verification (GitHub 커밋 인증)

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
repo_url VARCHAR(500) 레포 URL
branch VARCHAR(100) 브랜치명
required_unit ENUM DAY / WEEK
required_count INT n회 이상
timezone VARCHAR(50) 집계 기준 타임존

깃허브 인증 페이지의 ‘백준 2000번’ 등의 제목

유예 면제 정책

1) group_exemption (면제 정책)

필드명 타입 설명
id BIGINT PK
group_id BIGINT FK 그룹
enabled BOOLEAN 면제 기능 활성
limit_unit ENUM WEEK / MONTH / TOTAL
limit_count INT 단위당 n회 제한
exclude_from_penalty BOOLEAN 면제일 패널티 제외
exclude_from_frequency BOOLEAN 면제일 횟수 집계 제외