from django.conf import settings from django.db import models from phonenumber_field.modelfields import PhoneNumberField from django.contrib.postgres.fields import ArrayField class Invite(models.Model): owner = models.OneToOneField(to=settings.AUTH_USER_MODEL, verbose_name="Кому приглошение", null=True, unique=True) hash = models.CharField(verbose_name="Уникальный код", max_length=15, unique=True) date = models.DateTimeField(verbose_name="Дата сгорания приглошения", null=True, blank=True) class Meta: verbose_name = 'Приглошение в систему' verbose_name_plural = 'Приглошения в систему' class ResetPassword(Invite): password = models.CharField(max_length=63, verbose_name="Новый пароль, если есть") class Meta: verbose_name = "Запрос на сброс пароля" verbose_name_plural = "Запросы на сброс пароля" class UserActivity(models.Model): owner = models.OneToOneField(to=settings.AUTH_USER_MODEL) ip_list = ArrayField(models.GenericIPAddressField(verbose_name="Ip адресс", editable=False), default=[]) last_request = models.DateTimeField(verbose_name="Был в сети", auto_now=True) def __str__(self): return self.owner.email class Meta: verbose_name = 'Пользовательская активность' verbose_name_plural = 'Пользовательская активность' class Account(models.Model): GENDER_CHOICES = ( (0, 'undefined'), (1, 'male'), (2, 'female'), ) b_day = models.DateField(blank=True, null=True) city = models.CharField(max_length=63, null=True, blank=True) gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0) owner = models.OneToOneField(to=settings.AUTH_USER_MODEL, null=True) photo = models.ImageField(default='/static/default/access/default.png', upload_to='user/photo/') phone = PhoneNumberField(blank=True, null=True) def __str__(self): return self.owner.email class Meta: verbose_name = 'Дополнительная информация о пользователе' verbose_name_plural = 'Дополнительная информация о пользователе'