accounts 확정
contents 와 같은 기준·이름 규칙을 적용합니다. 판정 열은 추천값으로 미리 채워져 있으니 바꿀 것만 바꾸시면 됩니다.
· contents 판정(확정) · 구조 문서
확정 공용 15 · 개별(data) 8 · 제거 4 · 보류 2 확정된 accounts 스키마 { _id ObjectId ● platform enum ● x · tt · ig · yt · rd · gh platform_key string ○ x id · gh login · rd 는 username 문자열(불변·재사용 불가) source_urls[] object[] ● handles[] object[] 기본값 [] { value, first_seen, last_seen } 구간이 핵심 — tt 는 핸들을 회전시키고 옛 핸들을 재할당한다 account_created_at Date ○ rug 1순위 신호. 6개 중 5개가 준다. ig 만 구조적 부재 display_name string ○ bio string ○ 지갑 주소가 실제로 여기 노출된다 links[] string[] 기본값 [] declared_handles[] object[] 기본값 [] { platform, value } — 사실상 gh twitter_username known_wallets[] string[] 기본값 [] 온체인 ↔ 소셜 조인 축. bio 에서 추출한 파생 키 metrics.followers number ○ contents.author.followers 스냅샷의 원본 moderation.unavailable bool ○ account_type ? ○ 보류 — data 로 내릴지 source_ref{} object ○ 보류 observed_at Date ● created_at/updated_at Date ● data Mixed 기본값 {} following · totalKarma · heart · viewCount · stars · content_count · badges } 제거 4 subtype · moderation.unavailable_reason · account_key · ext subtype 제거 근거 platform 을 아는 순간 종류가 결정되어 새 정보가 0. venues 는 tg 가 갈리므로 유지
질문 1 · 이 필드로 쿼리하는가? (filter · sort · join · group · index) 아니오 → data 예 → 질문 2 질문 2 · 값의 의미가 모든 subtype 에서 같은가? 아니오 → data 예 → 질문 3 질문 3 · 이 값의 원본(SoT)이 다른 곳에 있는가? 예 → 최적화용 아니오 → 공용 필수 여부 필수 ● 없으면 저장 불가 기본값 필수지만 기본값이 있어 항상 존재 선택 ○ 없을 수 있음
이 컬렉션의 쟁점 6개
1. account_type → subtype 흡수 contents 에서 form 을 흡수한 것과 같은 패턴
2. metrics 를 시계열로 뺄지 B-3(팔로워 급증 탐지)은 스냅샷 컬렉션이 있어야 답한다
3. badges[] 유지 여부 X 전용 · 설계 스스로 저가치라 기록
4. source_ref{} 처리 프로필 직접 조회가 아님을 남기는 값. 쿼리 축인지 불명
5. display_name 승격 여부 사실상 x·yt 만. audit 이 나머지를 skip 했다
6. data.stars 위치 레포 응답에 딸린 값이라 contents 쪽일 수 있다
| 필드 | 어디서 오나 · 무엇인가 | Q1 쿼리 |
Q2 의미 |
Q3 원본 |
판정 근거 · 쟁점 | 판정 | 필수 | 메모 |
|---|
복사해서 채팅에 붙여넣으시면 그대로 반영하겠습니다.