from django.contrib.auth import get_user_model from django.db import models from tickets.models import Ticket from dbsynce.docs.database.permissions import Permissions as HelpTexts from core.settings_vars import METASERVICE_ID class Permissions(models.Model): """ Разрешения - (проверки/экзамены). По смыслу это что-то вроде “документа на право что-то делать” - на данном этапе это ограничено метасервисом/платформой, при этом он может быть полностью цифровым (выданным платформой/сервисом). """ # ID METASERVICE id_metaservice = models.PositiveIntegerField( default=METASERVICE_ID, help_text=HelpTexts.id_metaservice ) # DATA permission_type = models.BigIntegerField( help_text=HelpTexts.permission_type ) check_level = models.CharField( max_length=10, help_text=HelpTexts.check_level ) status = models.CharField( max_length=150, help_text=HelpTexts.status ) check_date = models.DateTimeField( null=True, help_text=HelpTexts.check_date ) expire_date = models.DateField( help_text=HelpTexts.expire_date ) # OTHER is_global = models.CharField( max_length=1, default="f", help_text=HelpTexts.is_global ) is_visible = models.CharField( max_length=1, default="f", help_text=HelpTexts.is_visible ) # FK ticket_status = models.ForeignKey( Ticket, on_delete=models.DO_NOTHING, null=True, help_text=HelpTexts.ticket_status ) user = models.ForeignKey( get_user_model(), related_name="user_perm", on_delete=models.DO_NOTHING, null=True, help_text=HelpTexts.user ) checked_by = models.ForeignKey( get_user_model(), related_name="checked_by_perm", on_delete=models.DO_NOTHING, null=True, help_text=HelpTexts.checked_by ) class Meta: db_table = "permissions" verbose_name = "Разрешение" verbose_name_plural = "Разрешения"