Description π νμ¬ λ¬Έμ μ
μΈμ¦ μ¬μ©μμ λμ ν΅κ³κ° 첫 νμ΄μ§(20μΈμ
) λ§ ν©μ° λμ΄ λΆμ νν κ°μ΄ λ
ΈμΆλ¨.
μν₯:
νλ‘ν νλ©΄ ν΅κ³ μΉ΄λ μ "κ³΅λΆ μκ°" μ΄ μ΅κ·Ό 20μΈμ
κΈ°μ€μΌλ‘λ§ κ³μ°λ¨ (profile_screen.dart:83).
λ±μ§ ν΄κΈ μμ€ν
μ 쑰건 νκ° (badge_provider.dart:53-55) β "μ΄ 100μκ° κ³΅λΆ", "μ΄ 50ν μΈμ
μλ£" λ₯ λ±μ§κ° μμν ν΄κΈλμ§ μμ.
κ²μ€νΈ λͺ¨λλ λ‘컬 μ 체 μΈμ
μ΄ λ©λͺ¨λ¦¬μ μμ΄ μ νν¨ β λΆκΈ° μ²λ¦¬ νμ.
λ°±μλ μΈ‘ λμ μ΄μ: today-stats-cumulative-fields.md
π οΈ ν΄κ²° λ°©μ / μ μ κΈ°λ₯
λ°±μλκ° GET /api/timer-sessions/today-stats μλ΅μ μΆκ°νλ 3κ° νλλ₯Ό ν΄λΌμ΄μΈνΈκ° λ°μ λμ ν΅κ³ provider μ λ
ΈμΆ.
κΈ°μ‘΄ todayStatsProvider ν¨ν΄ (μΈμ¦=μλ² / κ²μ€νΈ=λ‘컬) κ·Έλλ‘ μ μ©.
κ²μ€νΈ λͺ¨λ λ‘μ§μ μλμ§ μμ β λ‘컬 μ 체 μΈμ
ν©μ°μ΄ μ΄λ―Έ μ ν.
βοΈ μμ
λ΄μ©
μ ν 쑰건 : λ°±μλ μμ
μλ£ + docs/api-docs.json μ TodayStatsResponse μ€ν€λ§ κ°±μ
TodayStatsResponseModel DTO μ νλ 3κ° μΆκ°
lifetimeMinutes, lifetimeSessionCount, monthlyMinutes
TodayStats λλ©μΈ μν°ν°μλ λμΌ νλ μΆκ° (toEntity() λ§€ν κ°±μ )
study_stats_provider.dart μ 3κ° provider λ₯Ό μΈμ¦/κ²μ€νΈ λΆκΈ°λ‘ 리ν©ν°λ§
totalStudyMinutesProvider β μΈμ¦: lifetimeMinutes, κ²μ€νΈ: κΈ°μ‘΄ λ‘컬 ν©μ°
totalSessionCountProvider β μΈμ¦: lifetimeSessionCount, κ²μ€νΈ: κΈ°μ‘΄
monthlyStudyMinutesProvider β μΈμ¦: monthlyMinutes, κ²μ€νΈ: κΈ°μ‘΄
build_runner build --delete-conflicting-outputs μ¬μ€ν
λ¨μ ν
μ€νΈ
today_stats_response_model_test.dart β μ νλ μ§λ ¬ν/μν°ν° λ³ν
study_stats_provider_test.dart β μΈμ¦/κ²μ€νΈ λΆκΈ°λ³ κ° νμΈ
νκ· κ°λ: κΈ°μ‘΄ today_stats_provider_test.dart ν΅κ³Ό μ μ§
πββοΈ λ΄λΉμ
λ°±μλ: μ΄λ¦
νλ‘ νΈμλ: μ΄λ¦
λμμΈ: μ΄λ¦
Reactions are currently unavailable
You canβt perform that action at this time.
π νμ¬ λ¬Έμ μ
profile_screen.dart:83).badge_provider.dart:53-55) β "μ΄ 100μκ° κ³΅λΆ", "μ΄ 50ν μΈμ μλ£" λ₯ λ±μ§κ° μμν ν΄κΈλμ§ μμ.π οΈ ν΄κ²° λ°©μ / μ μ κΈ°λ₯
GET /api/timer-sessions/today-statsμλ΅μ μΆκ°νλ 3κ° νλλ₯Ό ν΄λΌμ΄μΈνΈκ° λ°μ λμ ν΅κ³ provider μ λ ΈμΆ.todayStatsProviderν¨ν΄ (μΈμ¦=μλ² / κ²μ€νΈ=λ‘컬) κ·Έλλ‘ μ μ©.βοΈ μμ λ΄μ©
docs/api-docs.jsonμTodayStatsResponseμ€ν€λ§ κ°±μTodayStatsResponseModelDTO μ νλ 3κ° μΆκ°lifetimeMinutes,lifetimeSessionCount,monthlyMinutesTodayStatsλλ©μΈ μν°ν°μλ λμΌ νλ μΆκ° (toEntity()λ§€ν κ°±μ )study_stats_provider.dartμ 3κ° provider λ₯Ό μΈμ¦/κ²μ€νΈ λΆκΈ°λ‘ 리ν©ν°λ§totalStudyMinutesProviderβ μΈμ¦:lifetimeMinutes, κ²μ€νΈ: κΈ°μ‘΄ λ‘컬 ν©μ°totalSessionCountProviderβ μΈμ¦:lifetimeSessionCount, κ²μ€νΈ: κΈ°μ‘΄monthlyStudyMinutesProviderβ μΈμ¦:monthlyMinutes, κ²μ€νΈ: κΈ°μ‘΄build_runner build --delete-conflicting-outputsμ¬μ€νtoday_stats_response_model_test.dartβ μ νλ μ§λ ¬ν/μν°ν° λ³νstudy_stats_provider_test.dartβ μΈμ¦/κ²μ€νΈ λΆκΈ°λ³ κ° νμΈtoday_stats_provider_test.dartν΅κ³Ό μ μ§πββοΈ λ΄λΉμ