commits
tags
export interface Profile {
id: string
name: string
gender: 'male' | 'female' | 'other'
age: number
heightCm: number
weightKg: number
goalWeightKg: number
goal: 'lose' | 'maintain' | 'gain'
pace: 'slow' | 'moderate' | 'fast'
activityLevel: 'sedentary' | 'light' | 'moderate' | 'very_active'
macroGoals: MacroGoals
createdAt: string
updatedAt: string
}
export interface MacroGoals {
calories: number
proteinG: number
carbsG: number
fatG: number
}
export interface Exercise {
id: string
name: string
muscle: string
secondary?: string
equip: string
icon: string
diff: 'Nybörjare' | 'Medel' | 'Avancerad'
type: 'Styrka' | 'Kondition' | 'Rörlighet'
isTimer?: boolean
instructions: string[]
wgerId?: number
isCustom?: boolean
}
export interface WorkoutSchedule {
id: string
name: string
day: number
exercises: ScheduledExercise[]
}
export interface ScheduledExercise {
exerciseId: string
sets: number
reps?: number
durationSec?: number
weight?: number
restSec: number
}
export interface WorkoutLogEntry {
id: string
workoutId: string
date: string
startedAt: string
endedAt?: string
durationMin: number
exercises: LoggedSet[][]
completedManually: boolean
}
export interface LoggedSet {
reps?: number
weight?: number
durationSec?: number
done: boolean
}
export interface FoodItem {
id: string
name: string
cal: number
prot: number
carbs: number
fat: number
isCustom?: boolean
}
export interface FoodLogEntry {
id: string
date: string
meal: 'breakfast' | 'lunch' | 'dinner' | 'snack'
foodId: string
foodName: string
amountG: number
cal: number
prot: number
carbs: number
fat: number
}
export interface MeasurementEntry {
id: string
date: string
weightKg?: number
waistCm?: number
bodyFatPct?: number
notes?: string
}
export interface WaterLogEntry {
id: string
date: string
totalMl: number
}