from django.db import models
from django.conf import settings


class Certificate(models.Model):
    enrollment = models.ForeignKey(
        'admissions.Enrollment', on_delete=models.CASCADE, related_name='certificates'
    )
    certificate_number = models.CharField(
        max_length=100, blank=True,
        help_text='UVTAB certificate / registration number',
    )
    certificate_file = models.FileField(
        upload_to='certificates/', blank=True, null=True,
        help_text='Upload the signed certificate PDF or image',
    )
    issue_date = models.DateField()
    academic_year = models.CharField(max_length=9, help_text='e.g. 2024/2025')
    notes = models.TextField(blank=True)
    recorded_by = models.ForeignKey(
        settings.AUTH_USER_MODEL, on_delete=models.SET_NULL,
        null=True, blank=True, related_name='recorded_certificates',
    )
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['-issue_date']

    def __str__(self):
        return (
            f"{self.enrollment.student.get_full_name()} — "
            f"{self.enrollment.program.get_level_display()} — "
            f"{self.academic_year}"
        )
