from django.db import models

from shared.storages import OverwriteStorage


class TweetQueryset(models.QuerySet):
    def username(self, username):
        return self.filter(author_username=username)

    def username_list(self, username_list):
        return self.filter(author_username__in=username_list)


class Tweet(models.Model):
    """
    Model pro ukládání Tweetů getnutých v manage commandu update_tweets z API Twitteru.
    ID Tweetu ukládáme jako string, protože i limit BigInt je stejného řádu jako ID
    nejnovějších Tweetů (2022).
    """

    author_img = models.ImageField(
        storage=OverwriteStorage, upload_to="twitter_accounts"
    )
    author_name = models.CharField(max_length=128, default="Piráti")
    author_username = models.CharField(max_length=128, default="PiratskaStrana")

    image = models.ImageField(null=True, upload_to="twitter")
    text = models.TextField()
    twitter_id = models.CharField(max_length=32, unique=True)

    objects = TweetQueryset.as_manager()