33 lines
758 B
Python
33 lines
758 B
Python
"""
|
|
Media relation
|
|
"""
|
|
|
|
from piccolo.table import Table
|
|
from piccolo.columns import UUID, Text, Boolean, Date, SmallInt, Varchar
|
|
from piccolo.columns.defaults.date import DateNow
|
|
from enum import Enum, auto
|
|
|
|
|
|
class MediaType(Enum):
|
|
"""
|
|
Represents a media type
|
|
"""
|
|
|
|
URL: int = auto()
|
|
BLOB: int = auto()
|
|
FILE: int = auto()
|
|
|
|
|
|
class Media(Table):
|
|
"""
|
|
A piece of media on a CDN
|
|
"""
|
|
|
|
media_id = Varchar(length=64, primary_key=True)
|
|
media_type = SmallInt(null=False, choices=MediaType)
|
|
content = Text(null=False)
|
|
content_type = Varchar(length=32, null=False)
|
|
flagged = Boolean(default=False, null=False)
|
|
deleted = Boolean(default=False, null=False)
|
|
creation_date = Date(default=DateNow(), null=False)
|