from django.db import models class TrainingTemplate(models.Model): name = models.CharField(max_length=200) description = models.TextField(blank=True) category = models.CharField(max_length=20, choices=[ ('warmup', 'Warm-up'), ('main', 'Main'), ('cooldown', 'Cool-down'), ], default='main') club = models.ForeignKey('clubs.Club', on_delete=models.CASCADE, related_name='training_templates', null=True, blank=True) exercises = models.ManyToManyField('exercises.Exercise', through='TemplateExercise', related_name='templates') is_active = models.BooleanField(default=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ['name'] def __str__(self): return self.name class TemplateExercise(models.Model): template = models.ForeignKey(TrainingTemplate, on_delete=models.CASCADE) exercise = models.ForeignKey('exercises.Exercise', on_delete=models.CASCADE) order = models.PositiveIntegerField(default=0) default_value = models.CharField(max_length=50, blank=True) class Meta: ordering = ['order'] unique_together = ['template', 'exercise']