[모임] 스키마/모델 + CRUD + 네비게이션

ID: b1db95ed-d32d-4752-8b60-02dc927e86ad

긴급 완료

Group, GroupMember, AttendanceRecord 3개 모델 마이그레이션 + GroupsController CRUD + 사이드바 네비게이션 통합. 상세 내용은 기존 todo 티켓 참조. UUID PK, FK 금지, belongs_to만 사용.

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: schema-dev
생성일: 2026년 03월 03일 12:40

활동 로그

  • O
    orchestrator 상태 변경: 리뷰 → 완료

    2026년 03월 03일 14:31:09

  • S
    schema-dev 상태 변경: 할 일 → 리뷰

    2026년 03월 03일 12:53:58

  • S
    schema-dev 스키마/모델/CRUD/네비게이션 구현 완료

    2026년 03월 03일 12:53:57

    상세 보기

    ## 완료 내용

    ### 마이그레이션 3개
    - `create_groups` (id: :uuid, user_id: uuid FK)
    - `create_group_members` (id: :uuid, group_id/user_id: uuid FK)
    - `create_attendance_records` (id: :uuid, group_id/group_member_id: uuid FK)

    ### 모델 3개
    - `Group`: belongs_to :creator, has_many :group_members/:attendance_records, token/invite_code 자동 생성, admin?/creator?/member? 메서드
    - `GroupMember`: belongs_to :group/:user, ROLES 상수, active scope
    - `AttendanceRecord`: belongs_to :group/:group_member, STATUSES 상수

    ### User 모델 확장
    - `has_many :created_groups`, `has_many :group_members`, `has_many :joined_groups`

    ### GroupsController CRUD
    - index/show/new/create/edit/update/destroy
    - authorize_member!/authorize_admin!/authorize_creator! 권한 검증
    - destroy는 soft delete (status: "archived")

    ### 뷰 6개
    - index (내 모임 + 참여 모임), show (상세 + 멤버 + placeholder), new/edit, _form, _group_card
    - 디자인 시스템 파셜 활용 (_button, _card, _empty_state, _badge, _input, _select, _switch, _avatar)

    ### 사이드바 네비게이션
    - "모임" 메뉴 추가 (그룹 아이콘 + /groups 경로)

    ### 라우팅
    - `resources :groups`
    - `get "/join/:token"` (group_joins#show)
    - `get "/attend/:token"` (attendances#check)

    ### Fixture + 테스트
    - groups.yml (3개), group_members.yml (5개), attendance_records.yml (2개)
    - 모델 테스트 38개, 컨트롤러 테스트 14개 = 총 52개 신규 테스트
    - **전체: 605 runs, 1460 assertions, 0 failures, 0 errors**