Ejemplo n.º 1
0
class AbstractCallRecord(models.Model):
    id = UUIDField(primary_key=True, default=uuid.uuid4, serialize=False, editable=False, unique=True)
    timestamp = models.DateTimeField('TIMESTAMP', null=False)
    call_id = UUIDField('CALL_ID', unique=True, null=False)

    class Meta:
        abstract = True
Ejemplo n.º 2
0
class _ModelWithUUIDPKABC(_ModelWithObjectsManagerAndDefaultMetaOptionsABC):
    uuid: UUIDField = \
        UUIDField(
            verbose_name='UUID',
            help_text='UUID',

            null=False,
            blank=False,
            choices=None,
            db_column=None,
            db_index=True,
            db_tablespace=None,
            default=uuid4,
            editable=False,
            # error_messages={},
            primary_key=True,
            unique=True,
            unique_for_date=None,
            unique_for_month=None,
            unique_for_year=None,
            # validators=()
        )

    class Meta(_ModelWithObjectsManagerAndDefaultMetaOptionsABC.Meta):
        # pylint: disable=too-few-public-methods
        """Metadata."""

        abstract = True
Ejemplo n.º 3
0
class People(Model):
    id = UUIDField(primary_key=True)
    name = CharField(max_length=128)
    gender = GenderField()
    age = CharField(max_length=64, blank=True)
    eye_color = CharField(max_length=64)
    hair_color = CharField(max_length=64)
Ejemplo n.º 4
0
class Listing(QuicksellModel):
	"""Listing model."""

	class Status(IntegerChoices):
		"""Listing's poissble states."""

		draft = 0, 'Draft'
		active = 1, 'Active'
		sold = 2, 'Sold'
		closed = 3, 'Closed'
		deleted = 4, 'Deleted'

	uuid = UUIDField(default=uuid.uuid4, unique=True, editable=False)
	title = CharField(max_length=200)
	description = TextField(null=True, blank=True)
	price = PositiveIntegerField()
	category = ForeignKey('Category', on_delete=SET(uncategorized))
	status = PositiveSmallIntegerField(choices=Status.choices, default=0)
	quantity = PositiveIntegerField(default=1)
	sold = PositiveIntegerField(default=0)
	views = PositiveIntegerField(default=0)
	date_created = DateTimeField(default=datetime.now, editable=False)
	date_expires = DateTimeField(default=default_expiration_date)
	condition_new = BooleanField(default=False)
	properties = JSONField(null=True, blank=True)
	seller = ForeignKey('Profile', related_name='listings', on_delete=CASCADE)
	location = ForeignKey(**location_fk_kwargs)

	def __str__(self):
		return self.title
class DCFModel(DjangoModel, __implements__, IDCFModel[T]):
    class Meta:
        abstract = True

    objects: BaseManager[T]
    id = UUIDField(unique=True,
                   primary_key=True,
                   default=uuid4,
                   editable=False)
    created_at = DateTimeField(auto_now_add=True)

    def __repr__(self) -> str:
        return f"<{self.__class__.__name__}: {self.pk}>"

    def __str__(self) -> str:
        return f"<{self.__class__.__name__}: {self.pk}>"

    @classmethod
    def from_model(cls, model: T) -> DCFModel[T]:
        assert isinstance(model, DCFModel)
        return model

    @classmethod
    def from_model_type(cls, model: Type[T]) -> Type[DCFModel[T]]:
        assert issubclass(model, DCFModel)
        return model
Ejemplo n.º 6
0
class CourseInvitation(models.Model):
    email = models.EmailField()
    course = models.ForeignKey(Course)
    uuid = UUIDField(default=uuid.uuid4, editable=False)

    invited_by = models.ForeignKey(User, related_name='invited_by')
    invited_at = models.DateTimeField(auto_now_add=True)

    accepted_at = models.DateTimeField(null=True)
    accepted_user = models.ForeignKey(User, null=True)

    def accepted(self):
        return self.accepted_at is not None
Ejemplo n.º 7
0
class TelephoneBill(models.Model):
    call_id = UUIDField(primary_key=True, default=uuid.uuid4, serialize=False, editable=False, unique=True)
    destination = CharField('DESTINATION', max_length=11, null=False)
    call_start_timestamp = models.DateTimeField('CALL_START_DATE', null=False)
    call_end_timestamp = models.DateTimeField('CALL_END_DATE', null=False)
    call_start_time = models.CharField('CALL_START_TIME', max_length=8, null=False)
    call_duration = models.CharField('CALL_DURATION', max_length=32, null=False)
    call_price = models.DecimalField(decimal_places=2, max_digits=17, default=Decimal("0.0"), null=False)
    source = CharField('SOURCE', max_length=11, null=False)

    class Meta:
        db_table = 'TelephoneBill'
        verbose_name = 'telephone_bill'
        verbose_name_plural = 'telephone_bills'
Ejemplo n.º 8
0
class IdempotencyKey(models.Model):
    uuid = UUIDField(max_length=36, primary_key=True, editable=False, default=uuid.uuid4)
    action = CharField(max_length=100)
    livemode = BooleanField(help_text="Whether the key was used in live or test mode.")
    created = DateTimeField(auto_now_add=True)

    class Meta:
        unique_together = ("action", "livemode")

    def __str__(self):
        return str(self.uuid)

    @property
    def is_expired(self):
        return timezone.now() > self.created + timedelta(hours=24)
Ejemplo n.º 9
0
class Flavor(Model):
    name = CharField(max_length=255)
    label = CharField(max_length=255)
    parent = ForeignKey("self", blank=True, null=True, on_delete=SET_NULL)
    float_value = FloatField(blank=True, null=True)
    decimal_value = DecimalField(blank=True,
                                 null=True,
                                 max_digits=10,
                                 decimal_places=2)
    uuid = UUIDField(default=uuid.uuid4)
    datetime = DateTimeField(blank=True, null=True)
    date = DateField(blank=True, null=True)
    time = TimeField(blank=True, null=True)
    duration = DurationField(blank=True, null=True)

    def __str__(self):
        return self.name
Ejemplo n.º 10
0
class Profile(QuicksellModel):
	"""User profile info."""

	user = OneToOneField(
		User, related_name='_profile', primary_key=True,
		editable=False, on_delete=CASCADE
	)
	uuid = UUIDField(default=uuid.uuid4, unique=True, editable=False)
	date_created = DateField(default=date.today, editable=False)
	full_name = CharField(max_length=100, blank=True)
	about = TextField(blank=True)
	online = BooleanField(default=True)
	rating = IntegerField(default=0)
	avatar = ImageField(null=True, blank=True, upload_to='images/avatars')
	location = ForeignKey(**location_fk_kwargs)

	def __str__(self):
		return str(self.user) + "'s profile."
Ejemplo n.º 11
0
class Films(Model):
    id = UUIDField(primary_key=True)
    title = CharField(max_length=255)
    description = TextField()
    director = CharField(max_length=128)
    producer = CharField(max_length=128)
    release_date = PositiveSmallIntegerField(validators=[
        # The Ghibli studio was founded in 1985, thus it can't release any
        # films before that date
        MinValueValidator(1985),

        # assume that "release date" is about real films and not for plans
        MaxValueValidator(tz_now().year + 1)
    ])
    rt_score = PositiveSmallIntegerField()
    people = ManyToManyField(People, default=None)

    class Meta:
        ordering = ["pk"]
Ejemplo n.º 12
0
class _ModelWithUUIDPKMixInABC(Model):
    uuid = UUIDField(  # https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.UUIDField
        null=False,
        blank=False,
        choices=None,
        db_column=None,
        db_index=True,
        db_tablespace=None,
        default=uuid4,
        editable=False,
        # error_messages=None,
        help_text='UUID Primary Key',
        primary_key=True,
        unique=True,
        unique_for_date=None,
        unique_for_month=None,
        unique_for_year=None,
        verbose_name='UUID Primary Key',
        # validators=()
    )

    class Meta:
        abstract = True
Ejemplo n.º 13
0
 def _load_period_ipstat(fill_date: date, period: timedelta):
     end_time = timezone.make_aware(
         time(hour=23, minute=59, second=59, microsecond=999999))
     end_date = datetime.combine(fill_date, end_time)
     start_date = (end_date - period).replace(hour=0,
                                              minute=0,
                                              second=0,
                                              microsecond=0)
     return Lead.objects \
         .filter(session_started__range=(start_date, end_date)) \
         .filter(ip_addr__isnull=False) \
         .values('ip_addr', 'geo', 'geo__country', 'geo__postal_code', 'provider') \
         .annotate(s_cnt=Count('id')) \
         .annotate(s_time=Sum(ExpressionWrapper(
             Coalesce('created', 'last_event_time') - F('session_started'),
             output_field=DurationField()))) \
         .annotate(s0_cnt=Count(Case(
             When(created__isnull=True, then=F('id')),
             default=None, output_field=UUIDField()))) \
         .annotate(s_beg=Cast(Avg(
             Cast(F('session_started'), output_field=TimeField())
         ), output_field=TimeField())) \
         .annotate(user_ids=ArrayAgg('pixel__project__user__id', distinct=True))\
         .annotate(cnt_dev=Count('device_id'))