| 13 | |
| 14 | |
| 15 | class FileCodes(models.Model): |
| 16 | id = fields.IntField(pk=True) |
| 17 | code = fields.CharField(max_length=255, unique=True, index=True) |
| 18 | prefix = fields.CharField(max_length=255, default="") |
| 19 | suffix = fields.CharField(max_length=255, default="") |
| 20 | uuid_file_name = fields.CharField(max_length=255, null=True) |
| 21 | file_path = fields.CharField(max_length=255, null=True) |
| 22 | size = fields.BigIntField(default=0) |
| 23 | text = fields.TextField(null=True) |
| 24 | expired_at = fields.DatetimeField(null=True) |
| 25 | expired_count = fields.IntField(default=0) |
| 26 | used_count = fields.IntField(default=0) |
| 27 | created_at = fields.DatetimeField(auto_now_add=True) |
| 28 | file_hash = fields.CharField(max_length=64, null=True) |
| 29 | is_chunked = fields.BooleanField(default=False) |
| 30 | upload_id = fields.CharField(max_length=36, null=True) |
| 31 | |
| 32 | async def is_expired(self): |
| 33 | if self.expired_at is None: |
| 34 | return False |
| 35 | if self.expired_at and self.expired_count < 0: |
| 36 | return self.expired_at < await get_now() |
| 37 | return self.expired_count <= 0 |
| 38 | |
| 39 | async def get_file_path(self): |
| 40 | return f"{self.file_path}/{self.uuid_file_name}" |
| 41 | |
| 42 | |
| 43 | class UploadChunk(models.Model): |
no outgoing calls
no test coverage detected