# In a real app, this might come from a DB or be generated.
EXERCISE_DB={
"pushup":Exercise(
name="Push Up",
type=ExerciseType.PUSH,
steps=["Start in plank position","Lower body until chest nearly touches floor","Push back up"],
image_prompt="A fit character performing a pushup, gym background, side view, correct form"
),
"pullup":Exercise(
name="Pull Up",
type=ExerciseType.PULL,
steps=["Hang from bar","Pull chin over bar","Lower down"],
image_prompt="A fit character performing a pullup, gym background, back view, correct form"
),
"squat":Exercise(
name="Bodyweight Squat",
type=ExerciseType.KNEE_HIP,
steps=["Stand feet shoulder width","Lower hips back and down","Stand back up"],
image_prompt="A fit character performing a squat, gym background, side view, correct form"
),
"plank":Exercise(
name="Plank",
type=ExerciseType.CORE,
steps=["Forearms on ground","Body straight","Hold"],
image_prompt="A fit character holding a plank position, gym background, side view"
),
"lunges":Exercise(
name="Walking Lunges",
type=ExerciseType.KNEE_HIP,
steps=["Step forward with one leg","Lower hips until both knees are bent at a 90-degree angle","Push off with your front foot to return to starting position","Repeat with the other leg"],
image_prompt="A fit character performing lunges, gym background, side view, correct form"
),
"overhead_press":Exercise(
name="Overhead Press",
type=ExerciseType.PUSH,
steps=["Stand with feet shoulder-width apart","Hold dumbbells at shoulder height","Press weights overhead until arms are fully extended","Lower back to starting position"],
image_prompt="A fit character performing an overhead press with dumbbells, gym background, front view, correct form"
),
"dumbbell_row":Exercise(
name="Dumbbell Row",
type=ExerciseType.PULL,
steps=["Place one knee and hand on a bench","Hold a dumbbell in the other hand","Pull the weight up towards your hip","Lower back down"],
image_prompt="A fit character performing a dumbbell row, gym background, side view, correct form"
),
"russian_twist":Exercise(
name="Russian Twist",
type=ExerciseType.CORE,
steps=["Sit on the floor with knees bent","Lean back slightly","Twist torso to one side, then the other","Hold a weight for added resistance if desired"],
image_prompt="A fit character performing russian twists, gym background, front view, correct form"
steps=["Lie on a flat bench","Grip barbell at shoulder width","Lower barbell to chest","Press barbell up until arms are fully extended"],
image_prompt="A fit character performing a bench press with barbell, gym background, side view, correct form"
),
"incline_pushup":Exercise(
name="Incline Push Up",
type=ExerciseType.PUSH,
steps=["Place hands on an elevated surface","Assume plank position with elevated hands","Lower body until chest nearly touches surface","Push back up"],
image_prompt="A fit character performing an incline pushup on a bench, gym background, side view, correct form"
),
"dips":Exercise(
name="Dips",
type=ExerciseType.PUSH,
steps=["Grip parallel bars with arms extended","Lower body by bending elbows","Push back up to starting position"],
image_prompt="A fit character performing dips on parallel bars, gym background, side view, correct form"
),
"lat_pulldown":Exercise(
name="Lat Pulldown",
type=ExerciseType.PULL,
steps=["Sit at lat pulldown machine","Grip the bar with hands slightly wider than shoulder width","Pull the bar down towards your chest","Slowly return to starting position"],
image_prompt="A fit character performing a lat pulldown on a machine, gym background, front view, correct form"
),
"barbell_row":Exercise(
name="Barbell Row",
type=ExerciseType.PULL,
steps=["Stand with feet shoulder-width apart","Hinge at hips and grip barbell","Row barbell towards your torso","Lower barbell back down"],
image_prompt="A fit character performing a barbell row, gym background, side view, correct form"
),
"assisted_pullup":Exercise(
name="Assisted Pull Up",
type=ExerciseType.PULL,
steps=["Use an assisted pull-up machine or resistance band","Place knees or feet on the assistance pad","Pull chin over the bar","Lower down with control"],
image_prompt="A fit character performing an assisted pullup, gym background, back view, correct form"
),
"deadlift":Exercise(
name="Deadlift",
type=ExerciseType.KNEE_HIP,
steps=["Stand with feet hip-width apart, barbell over mid-foot","Bend hips and knees to grip the bar","Drive through heels to stand up","Lower back down with control"],
image_prompt="A fit character performing a deadlift with barbell, gym background, side view, correct form"
),
"leg_press":Exercise(
name="Leg Press",
type=ExerciseType.KNEE_HIP,
steps=["Sit on leg press machine with back against pad","Place feet on platform shoulder-width apart","Push platform away by extending legs","Lower platform back down"],
image_prompt="A fit character performing a leg press on a machine, gym background, side view, correct form"
),
"calf_raises":Exercise(
name="Calf Raises",
type=ExerciseType.KNEE_HIP,
steps=["Stand with feet hip-width apart","Rise up onto the balls of your feet","Hold the top position briefly","Lower heels back down"],
image_prompt="A fit character performing calf raises, gym background, side view, correct form"
),
"bicycle_crunch":Exercise(
name="Bicycle Crunch",
type=ExerciseType.CORE,
steps=["Lie on your back with hands behind head","Bring one elbow towards the opposite knee","Extend the other leg","Alternate in a cycling motion"],
image_prompt="A fit character performing bicycle crunches, gym background, front view, correct form"
),
"dead_bug":Exercise(
name="Dead Bug",
type=ExerciseType.CORE,
steps=["Lie on your back with arms extended towards ceiling","Raise legs with knees bent at 90 degrees","Lower opposite arm and leg while keeping back on floor","Return and alternate sides"],
image_prompt="A fit character performing a dead bug exercise, gym background, front view, correct form"
),
"mountain_climbers":Exercise(
name="Mountain Climbers",
type=ExerciseType.CORE,
steps=["Start in plank position","Bring one knee towards your chest","Quickly switch legs in a running motion","Maintain a steady pace"],
image_prompt="A fit character performing mountain climbers, gym background, side view, correct form"