feat(backend): 일정 함께 관리 API — 초대 코드로 달력 연동

가족·친구가 한 달력을 함께 쓸 수 있게 한다.
- calendar_groups · calendar_group_members (한 사람 한 그룹, 최대 4명), 회원마다 개인 초대 코드(RUP-6자)
- 연동 상태·초대 미리보기·코드로 연동·연동 해제 — 해제하면 내 일정만 남고, 1명 남은 그룹은 지운다
- 일정·반복·완료는 그룹 전체가 보고 고칠 수 있다. 응답에 만든 사람·대상 요약을 담고,
  남의 일정을 고칠 때 대상은 그 사람의 아이로 확인한다
- 연동·해제는 advisory lock 으로 줄 세워 인원 초과·중복 그룹을 막는다
- 파일 열람 정책 — 연동된 사람의 프로필·아이 사진
- 초대 코드 생성기·고유 충돌 재시도·대상 요약을 공통으로 옮겨 다이어리와 함께 쓴다
- 에러 코드 SCHED_001~005

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-11 21:31:57 +09:00
parent f50ab85a75
commit b6c5496a05
33 changed files with 1893 additions and 285 deletions
@@ -16,6 +16,11 @@ const Map<String, String> kErrorCodeMessages = {
'DIARY_003': '초대 코드를 찾을 수 없어요. 코드를 다시 확인해 주세요.',
'DIARY_004': '참여 인원이 가득 찼어요. (최대 4명)',
'DIARY_005': '이미 참여하고 있는 다이어리예요.',
'SCHED_001': '초대 코드를 찾을 수 없어요. 코드를 다시 확인해 주세요.',
'SCHED_002': '이미 4명이 연동되어 있어요.',
'SCHED_003': '내 초대 코드로는 연동할 수 없어요.',
'SCHED_004': '이미 다른 사람과 연동되어 있어요. 연동을 해제한 뒤 다시 시도해 주세요.',
'SCHED_005': '이미 연동된 사람이에요.',
'CARD_001': '펫 명함은 최대 10장까지 만들 수 있어요.',
'CARD_002': '명함을 찾을 수 없어요. 명함 코드를 다시 확인해 주세요.',
'CARD_003': '내 명함은 받을 수 없어요.',