{
  "program": {
    "id": "jurnal_2026-05-11",
    "title": "Jurnal Antrenamente",
    "week_start": "2026-05-11",
    "week_no": 3,
    "subtitle": "Săptămâna 3",
    "params": "4 serii · piramidă 12–15 / 10–12 / 8–10 / 6–8 rep · RPE 6–7 · tempo coborâre 3 sec",
    "progression": "+4 kg la seria urm. dacă ai atins limita sup. de rep; +2 kg dacă ai atins limita inf."
  },
  "schedule": {
    "days": [
      {
        "day_no": 1,
        "label": "Ziua 1",
        "planned_weekday": "Luni",
        "actual_date": "2026-05-11",
        "status": "planned"
      },
      {
        "day_no": 2,
        "label": "Ziua 2",
        "planned_weekday": "Marți",
        "actual_date": "2026-05-12",
        "status": "planned"
      },
      {
        "day_no": 3,
        "label": "Ziua 3",
        "planned_weekday": "Miercuri",
        "actual_date": "2026-05-13",
        "status": "planned"
      },
      {
        "day_no": 4,
        "label": "Ziua 4",
        "planned_weekday": "Joi",
        "actual_date": "2026-05-14",
        "status": "planned"
      }
    ]
  },
  "days": [
    {
      "day_no": 1,
      "date": "2026-05-11",
      "weekday": "Luni",
      "title": "Picioare (quad-dominant) · gambe · core",
      "note": "Hack squat e exercițiu relativ nou — dacă greutatea din săpt. 2 a părut ușoară la seriile 3–4, crești cu 5 kg la pornire.",
      "exercises": [
        {
          "id": "z1e1",
          "order": 1,
          "name_ro": "Extensia gambei standard",
          "name_en": "Standard Leg Extension",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23/c/6a0073eb-7800-8327-937d-187fb9ebe66d",
          "image": "imagini-aparate-daimon/imagini-reale/leg-extension_400px.jpeg",
          "setup": "Sprijin pe tibie (poziția L); spătar poziția 4.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 55,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 60,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 65,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 70,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z1e2",
          "order": 2,
          "name_ro": "Hack squat standard",
          "name_en": "Shoulder-Width Stance Hack Squat",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a005548-fc28-8325-bc2f-d78b07b6b85c",
          "image": "imagini-aparate-daimon/imagini-reale/hack-squat_400px.jpeg",
          "setup": "Picioarele la lățimea umerilor pe platformă; spate lipit de suport. Verifică că genunchii urmăresc direcția vârfurilor pe toată amplitudinea.",
          "flags": {
            "calibration": true,
            "calibration_note": "De calibrat — greutate din săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "plates",
            "step": 10,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z1e3",
          "order": 3,
          "name_ro": "Fandare bulgărească",
          "name_en": "Bulgarian Split Squat",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff7673-0a04-8328-afd2-a86369e6844c",
          "image": "imagini-aparate-daimon/imagini-reale/adjustable-bench_400px.jpeg",
          "setup": "Piciorul din spate pe bancă; trunchi ușor aplecat înainte.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": true,
            "bodyweight": false,
            "dumbbell": true
          },
          "weight_system": {
            "type": "dumbbell",
            "step": null,
            "has_half_step": false,
            "custom_values": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              10,
              12,
              14,
              16,
              18,
              20,
              22,
              24,
              26,
              28,
              35
            ]
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 6,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 2,
              "target_weight": 8,
              "rep_min": 8,
              "rep_max": 8
            },
            {
              "set_no": 3,
              "target_weight": 10,
              "rep_min": 8,
              "rep_max": 8
            },
            {
              "set_no": 4,
              "target_weight": 10,
              "rep_min": 8,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z1e4",
          "order": 4,
          "name_ro": "Extensia gambei din șezut",
          "name_en": "Seated Calf Extension",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff96ec-8604-8330-afb3-11494a781e50",
          "image": "imagini-aparate-daimon/imagini-reale/calf-extension_400px.jpeg",
          "setup": "Genunchii sub pernă; amplitudine completă sus și jos; pauză 1 sec în vârf.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform calibrare săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 15,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 10
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z1e5",
          "order": 5,
          "name_ro": "Rotație standard a trunchiului",
          "name_en": "Machine Torso Rotation",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a009529-51b0-832c-8f8d-d108057bc679",
          "image": "imagini-aparate-daimon/imagini-reale/torso-rotation_400px.jpeg",
          "setup": "Rotație controlată; nu bloca mișcarea la capăt de amplitudine.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 55,
              "rep_min": 15,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 75,
              "rep_min": 12,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 95,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 95,
              "rep_min": 10,
              "rep_max": 10
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        }
      ]
    },
    {
      "day_no": 2,
      "date": "2026-05-12",
      "weekday": "Marți",
      "title": "Piept + umeri · triceps",
      "note": "Piept și umeri pe aparat — greutățile din săpt. 2 sunt baza. Crești doar dacă RPE a fost sub 6 la seriile finale.",
      "exercises": [
        {
          "id": "z2e1",
          "order": 1,
          "name_ro": "Presă pentru piept standard",
          "name_en": "Standard Chest Press",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff982a-b20c-8329-b401-f598b5484eb7",
          "image": "imagini-aparate-daimon/imagini-reale/chest-press-2_400px.jpeg",
          "setup": "Reglează scaunul astfel încât brațul superior să fie orizontal față de podea.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z2e2",
          "order": 2,
          "name_ro": "Zbor pectoral standard",
          "name_en": "Standard Pec Deck Fly",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a005337-ae48-8333-acc4-8db9f387e2d4",
          "image": "imagini-aparate-daimon/imagini-reale/fly_400px.jpeg",
          "setup": "Coatele ușor flexate; coboară până la nivelul umerilor, nu mai jos.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z2e3",
          "order": 3,
          "name_ro": "Împins la umeri standard",
          "name_en": "Machine Shoulder Press",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a0091a8-aca4-8330-a084-b3ccef7ab952",
          "image": "imagini-aparate-daimon/imagini-reale/shoulder-press_400px.jpeg",
          "setup": "Reglează scaunul astfel încât coatele să fie la 90° în poziția de start.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z2e4",
          "order": 4,
          "name_ro": "Ridicări frontale",
          "name_en": "Front Raises",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a004dc8-0cf8-8332-87a6-43586cb8e361",
          "image": "imagini-aparate-daimon/imagini-reale/dumbbell-rack_400px.jpeg",
          "setup": "Din picioare sau din șezut; mișcare controlată până la nivelul umerilor.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": true
          },
          "weight_system": {
            "type": "dumbbell",
            "step": null,
            "has_half_step": false,
            "custom_values": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              10,
              12,
              14,
              16,
              18,
              20,
              22,
              24,
              26,
              28,
              35
            ]
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 8,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 10,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 12,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 14,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z2e5",
          "order": 5,
          "name_ro": "Extensie triceps",
          "name_en": "Triceps Pushdown",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff9f15-6af4-8384-8fa2-cf0279440afa",
          "image": "imagini-aparate-daimon/imagini-reale/dual-adjustable-pulley_400px.jpeg",
          "setup": "Scripetele sus; coatele fixe pe lângă corp; extensie completă cu funie.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        }
      ]
    },
    {
      "day_no": 3,
      "date": "2026-05-13",
      "weekday": "Miercuri",
      "title": "Spate · biceps · lombar",
      "note": "Spate consecutiv cu săpt. anterioară — dacă ramat bilateral a părut prea ușor la seriile 3–4, crești pornirea cu 5 kg.",
      "exercises": [
        {
          "id": "z3e1",
          "order": 1,
          "name_ro": "Tracțiune verticală standard",
          "name_en": "Standard Lat Pull Down",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a006ec8-4010-8328-b0d4-4543bca3dcdd",
          "image": "imagini-aparate-daimon/imagini-reale/lat-pull-down_400px.jpeg",
          "setup": "Priză la limita curburii barei; trage spre piept cu coatele în jos și înapoi.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 45,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 55,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 65,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 70,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z3e2",
          "order": 2,
          "name_ro": "Ramat bilateral",
          "name_en": "Bilateral Lying Cable Row",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a002893-c104-8328-bc60-878accadfd99",
          "image": "imagini-aparate-daimon/imagini-reale/dual-pulley-row_400px.jpeg",
          "setup": "Scripetele la înălțimea mijlocului; trage spre coaste, strânge omoplații.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z3e3",
          "order": 3,
          "name_ro": "Ramat unilateral",
          "name_en": "Single-Arm Dumbbell Row",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff738b-2fd4-8333-b51a-f3bcddf4686a",
          "image": "imagini-aparate-daimon/imagini-reale/adjustable-bench_400px.jpeg",
          "setup": "Un genunchi pe bancă, spatele paralel cu solul; trage gantera spre șold.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": true,
            "bodyweight": false,
            "dumbbell": true
          },
          "weight_system": {
            "type": "dumbbell",
            "step": null,
            "has_half_step": false,
            "custom_values": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              10,
              12,
              14,
              16,
              18,
              20,
              22,
              24,
              26,
              28,
              35
            ]
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 16,
              "rep_min": 12,
              "rep_max": 12
            },
            {
              "set_no": 2,
              "target_weight": 20,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 3,
              "target_weight": 24,
              "rep_min": 8,
              "rep_max": 8
            },
            {
              "set_no": 4,
              "target_weight": 28,
              "rep_min": 6,
              "rep_max": 6
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z3e4",
          "order": 4,
          "name_ro": "Curl biceps cu bara",
          "name_en": "Barbell Curl",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff9623-5e04-8391-a37a-778370f588be",
          "image": "imagini-aparate-daimon/imagini-reale/barbell-rack_400px.jpeg",
          "setup": "Priză la lățimea umerilor; mișcare controlată, fără balans.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "plates",
            "step": 10,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z3e5",
          "order": 5,
          "name_ro": "Hiperextensia standard",
          "name_en": "45-Degree Back Extension",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a006672-a00c-8333-ba55-8545dd327c7e",
          "image": "imagini-aparate-daimon/imagini-reale/hyper-extension-bench_400px.jpeg",
          "setup": "Șoldurile sprijinite pe pernă; coborâre controlată; extensie până la linia corpului. Dacă simți lombarul, rămâi fără greutate la toate seriile.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 15,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 10,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 10,
              "rep_min": 10,
              "rep_max": 10
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        }
      ]
    },
    {
      "day_no": 4,
      "date": "2026-05-14",
      "weekday": "Joi",
      "title": "Picioare (hip-dominant) · fesieri · echilibru · core",
      "note": "Leg press și step-up sunt grele după seated leg curl. Dacă oboseala e mare, elimini step-up și păstrezi restul. Recuperare completă weekend.",
      "exercises": [
        {
          "id": "z4e1",
          "order": 1,
          "name_ro": "Flexia gambelor din șezut",
          "name_en": "Seated Leg Curl",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a008aa4-1f40-832b-8573-bf232fc230f9",
          "image": "imagini-aparate-daimon/imagini-reale/seated-leg-curl_400px.jpeg",
          "setup": "Genunchii ușor peste marginea suportului; vârfurile trase spre tibie.",
          "flags": {
            "calibration": true,
            "calibration_note": "Conform jurnal săpt. 2",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z4e2",
          "order": 2,
          "name_ro": "Presă cu tălpile sus pe platformă",
          "name_en": "High Foot Placement Leg Press",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a007795-6d4c-832c-9501-d937560aec79",
          "image": "imagini-aparate-daimon/imagini-reale/leg-press-45-degree_400px.jpeg",
          "setup": "Tălpile în treimea superioară a platformei; accent fesieri și ischiogambieri.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "plates",
            "step": 10,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 160,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 190,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 220,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 250,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z4e3",
          "order": 3,
          "name_ro": "Step-up cu ridicare de genunchi",
          "name_en": "Step-Up to Knee Drive",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/6a007c4c-f430-8332-851d-b33293712384",
          "image": "imagini-aparate-daimon/imagini-reale/plyo-boxes_400px.jpeg",
          "setup": "Cutie sau bancă; urcă prin călcâi, ridici genunchiul opus sus la final.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": true,
            "bodyweight": false,
            "dumbbell": true
          },
          "weight_system": {
            "type": "dumbbell",
            "step": null,
            "has_half_step": false,
            "custom_values": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              10,
              12,
              14,
              16,
              18,
              20,
              22,
              24,
              26,
              28,
              35
            ]
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 6,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 2,
              "target_weight": 8,
              "rep_min": 8,
              "rep_max": 8
            },
            {
              "set_no": 3,
              "target_weight": 10,
              "rep_min": 8,
              "rep_max": 8
            },
            {
              "set_no": 4,
              "target_weight": 10,
              "rep_min": 8,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z4e4",
          "order": 4,
          "name_ro": "Face Pull",
          "name_en": "Face Pull",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff9ece-82cc-8331-bb1d-6687edc7d91a",
          "image": "imagini-aparate-daimon/imagini-reale/dual-adjustable-pulley_400px.jpeg",
          "setup": "Scripetele la nivelul feței; trage coarda spre față cu coatele sus.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": false,
            "dumbbell": false
          },
          "weight_system": {
            "type": "pin",
            "step": 5,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 17.5,
              "rep_min": 12,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 28,
              "rep_min": 10,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 35,
              "rep_min": 8,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 42,
              "rep_min": 6,
              "rep_max": 8
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        },
        {
          "id": "z4e5",
          "order": 5,
          "name_ro": "Ridicarea genunchilor",
          "name_en": "Bent Knee Leg Raise",
          "guide_url": "https://chatgpt.com/g/g-p-67dd8166f96481918165088684058b23-sport-and-nutrition/c/69ff9c1f-0788-832a-bd62-f59240e01c97",
          "image": "imagini-aparate-daimon/imagini-reale/chin-dip-leg-raise_400px.jpeg",
          "setup": "Sprijinit pe pernele de cot; genunchii îndoiți la 90°; ridici spre piept.",
          "flags": {
            "calibration": false,
            "calibration_note": "",
            "per_side": false,
            "bodyweight": true,
            "dumbbell": false
          },
          "weight_system": {
            "type": "bodyweight",
            "step": 0,
            "has_half_step": false,
            "custom_values": []
          },
          "planned_sets": [
            {
              "set_no": 1,
              "target_weight": 0,
              "rep_min": 15,
              "rep_max": 15
            },
            {
              "set_no": 2,
              "target_weight": 0,
              "rep_min": 12,
              "rep_max": 12
            },
            {
              "set_no": 3,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 10
            },
            {
              "set_no": 4,
              "target_weight": 0,
              "rep_min": 10,
              "rep_max": 10
            }
          ],
          "performed_sets": [
            {
              "set_no": 1,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 2,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 3,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            },
            {
              "set_no": 4,
              "actual_weight": 0,
              "actual_reps": 0,
              "done": false,
              "notes": ""
            }
          ]
        }
      ]
    }
  ]
}