feat: replace age integer with date_of_birth across backend and client
Store date_of_birth (DATE) instead of a static age integer so that age is always computed dynamically from the stored date of birth. - Migration 011: adds date_of_birth, backfills from age, drops age - AgeFromDOB helper computes current age from YYYY-MM-DD string - User model, repository SQL, and service validation updated - Flutter: User.age becomes a computed getter; profile edit screen uses a date picker bounded to [today-120y, today-10y] Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ class UpdateProfileRequest {
|
||||
final String? name;
|
||||
final int? heightCm;
|
||||
final double? weightKg;
|
||||
final int? age;
|
||||
final String? dateOfBirth;
|
||||
final String? gender;
|
||||
final String? activity;
|
||||
final String? goal;
|
||||
@@ -22,7 +22,7 @@ class UpdateProfileRequest {
|
||||
this.name,
|
||||
this.heightCm,
|
||||
this.weightKg,
|
||||
this.age,
|
||||
this.dateOfBirth,
|
||||
this.gender,
|
||||
this.activity,
|
||||
this.goal,
|
||||
@@ -34,7 +34,7 @@ class UpdateProfileRequest {
|
||||
if (name != null) map['name'] = name;
|
||||
if (heightCm != null) map['height_cm'] = heightCm;
|
||||
if (weightKg != null) map['weight_kg'] = weightKg;
|
||||
if (age != null) map['age'] = age;
|
||||
if (dateOfBirth != null) map['date_of_birth'] = dateOfBirth;
|
||||
if (gender != null) map['gender'] = gender;
|
||||
if (activity != null) map['activity'] = activity;
|
||||
if (goal != null) map['goal'] = goal;
|
||||
|
||||
Reference in New Issue
Block a user