from django.db import models from django.utils import timezone class TrainingLogEntry(models.Model): wrestler = models.ForeignKey('wrestlers.Wrestler', on_delete=models.CASCADE, related_name='training_logs') training = models.ForeignKey('trainings.Training', on_delete=models.SET_NULL, null=True, blank=True, related_name='training_logs') exercise = models.ForeignKey('exercises.Exercise', on_delete=models.CASCADE, related_name='training_logs') reps = models.PositiveIntegerField() sets = models.PositiveIntegerField(default=1) time_minutes = models.PositiveIntegerField(null=True, blank=True) weight_kg = models.DecimalField(null=True, blank=True, max_digits=5, decimal_places=2) rating = models.PositiveSmallIntegerField(choices=[(1,1),(2,2),(3,3),(4,4),(5,5)], default=3) notes = models.TextField(blank=True) logged_at = models.DateTimeField(default=timezone.now) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ['-logged_at'] indexes = [ models.Index(fields=['wrestler']), models.Index(fields=['exercise']), models.Index(fields=['logged_at']), models.Index(fields=['training']), ] def __str__(self): return f"{self.wrestler} - {self.exercise.name} ({self.reps}x{self.sets})"