Files
shinalokandClaude Sonnet 5 9dfcbcec8f add day-detail view to monthly history calendar
날짜 셀 클릭 시 그 날 예정된 습관별 완료/실패/미완료 상태를 htmx로 불러와 보여준다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-21 13:21:49 +09:00

58 lines
1.5 KiB
Python

from datetime import date, datetime
from pydantic import BaseModel, ConfigDict
from app.schemas.level import LevelInfo
class HabitLogOut(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
habit_id: int
log_date: date
checked_at: datetime
class TodayItem(BaseModel):
habit_id: int
name: str
habit_type: str
condition_text: str | None
reminder_time: str | None
checked: bool
completion_rate: float
current_streak: int
scheduled_days: int
level_info: LevelInfo
class MonthlySummaryDay(BaseModel):
log_date: date
scheduled_count: int
checked_count: int
class WeeklyMatrixRow(BaseModel):
habit_id: int
name: str
habit_type: str
checks: dict[str, bool | None] # ISO 날짜 문자열 -> 체크 여부 (None이면 그 요일에 예정되지 않음)
completion_rate: float # 이번 주, 오늘까지 지난 예정일 중 체크한 비율 (%)
class DayDetailItem(BaseModel):
habit_id: int
name: str
habit_type: str
condition_text: str | None
status: str # "checked" | "failed" | "missed"(과거, 미결정) | "pending"(오늘/미래, 미결정)
class HabitStats(BaseModel):
completion_rate: float # 습관 생성일부터 오늘까지, 예정된 날 중 체크한 비율 (%)
current_streak: int # 오늘(또는 어제)부터 거슬러 올라가며 끊기지 않고 체크한 예정일 수
scheduled_days: int
checked_days: int
level_info: LevelInfo