import sshpubkeys

from django.db import models
from django.utils.translation import gettext_lazy as _

from common.db.models import JMSBaseModel, CASCADE_SIGNAL_SKIP
from users.models import AuthMixin
from common.db import fields


class SSHKey(JMSBaseModel, AuthMixin):
    name = models.CharField(max_length=128, verbose_name=_("Name"))
    is_active = models.BooleanField(default=True, verbose_name=_('Active'))
    private_key = fields.EncryptTextField(
        blank=True, null=True, verbose_name=_("Private key")
    )
    public_key = fields.EncryptTextField(
        blank=True, null=True, verbose_name=_("Public key")
    )
    date_last_used = models.DateTimeField(null=True, blank=True, verbose_name=_('Date last used'))
    user = models.ForeignKey(
        'users.User', on_delete=CASCADE_SIGNAL_SKIP, verbose_name=_('User'), db_constraint=False,
        related_name='ssh_keys'
    )

    class Meta:
        verbose_name = _('SSH key')