Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 2.31 KB

File metadata and controls

46 lines (32 loc) · 2.31 KB

문서 - Refeel 모델

SwiftData 기반으로 설계되었으며, Retrospect 모델과 Category 열거형으로 구성되어 있습니다.


📘 모델: Retrospect

사용자가 하루 회고를 작성할 때 사용하는 주요 데이터 모델입니다.

필드명 타입 설명 제약조건
id UUID 고유 식별자 Primary Key
date Date 회고 작성 날짜 Not Null, 하루 시작 시각으로 정규화됨
content String? 회고 내용 (선택사항) Nullable
category Category? 회고 카테고리 (선택사항) Enum 참조

📗 열거형: Category

회고에 사용할 수 있는 카테고리 목록입니다. UI에서 한글로 표시되며, Enum의 raw value는 한글입니다.

Enum 값 Raw Value 설명
workout "운동" 운동 관련 활동 기록
study "공부" 학습 및 공부 기록
work "업무" 일 및 생산 활동 기록
rest "휴식" 여가 및 휴식 기록
etc "기타" 기타 활동 기록

🧩 확장 가능성

개선 방향 설명
감정 추가 감정 상태 (행복/슬픔 등) Enum으로 확장 가능
태그(Tag) 기능 여러 키워드를 Set<String> 또는 별도 Tag 모델로 연결 가능
사용자 모델 연동 다중 사용자 회고 지원을 위한 UserRetrospect 관계 도입 가능
파일 첨부 기능 사진, 음성 등 미디어를 Retrospect에 연결 가능

📌 참고사항

  • SwiftData의 @Model은 내부적으로 자동으로 id와 저장소를 관리합니다.
  • Calendar.current.startOfDay(for:)를 통해 date를 하루 기준으로 정규화하여 중복 기록 방지에 활용합니다.