Files
opc-backend/opc_cert/models.py

33 lines
1.6 KiB
Python
Raw Permalink Normal View History

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'