41 lines
838 B
TypeScript
41 lines
838 B
TypeScript
export type Gender = 'male' | 'female';
|
|
export type Goal = 'lose' | 'maintain' | 'gain';
|
|
export type ActivityLevel = 'sedentary' | 'light' | 'moderate' | 'active' | 'very_active';
|
|
|
|
export interface UserProfile {
|
|
height: number; // cm
|
|
weight: number; // kg
|
|
age: number;
|
|
gender: Gender;
|
|
activityLevel: ActivityLevel;
|
|
goal: Goal;
|
|
|
|
// Calculated
|
|
bmi: number;
|
|
tdee: number;
|
|
|
|
// Targets
|
|
targetCalories: number;
|
|
targetProtein: number;
|
|
targetFat: number;
|
|
targetCarbs: number;
|
|
targetWater: number; // ml
|
|
}
|
|
|
|
export interface Meal {
|
|
id: string;
|
|
name: string;
|
|
time: string;
|
|
calories: number;
|
|
protein: number;
|
|
fat: number;
|
|
carbs: number;
|
|
}
|
|
|
|
export interface DailyLog {
|
|
date: string; // YYYY-MM-DD
|
|
meals: Meal[];
|
|
waterIntake: number; // ml
|
|
weight?: number; // kg (Optional daily weight record)
|
|
}
|