import uuid from django.db import models class CertStatus(models.TextChoices): PENDING = 'PENDING', '待审核' APPROVED = 'APPROVED', '已通过' REJECTED = 'REJECTED', '已驳回' class OpcCertification(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) user = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='opc_certifications') real_name = models.CharField(max_length=64) id_card = models.TextField(null=True, blank=True) skills = models.JSONField(default=list) experience = models.TextField(null=True, blank=True) resume_url = models.CharField(max_length=512, null=True, blank=True) attachments = models.JSONField(default=list) status = models.CharField(max_length=16, choices=CertStatus.choices, default=CertStatus.PENDING) reject_reason = models.TextField(null=True, blank=True) reviewer = models.ForeignKey('users.User', on_delete=models.SET_NULL, null=True, blank=True, related_name='reviewed_certifications') reviewed_at = models.DateTimeField(null=True, blank=True) rating = models.SmallIntegerField(null=True, blank=True) rating_tags = models.JSONField(default=list) rating_note = models.TextField(null=True, blank=True) rated_by = models.ForeignKey('users.User', on_delete=models.SET_NULL, null=True, blank=True, related_name='rated_certifications') rated_at = models.DateTimeField(null=True, blank=True) version = models.SmallIntegerField(default=1) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: db_table = 'opc_certifications'