38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
import uuid
|
|
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from sqlalchemy import Column, DateTime, Unicode
|
|
from sqlalchemy.dialects.postgresql import BYTEA, UUID
|
|
|
|
from .meta import Base
|
|
|
|
|
|
class DbImage(Base):
|
|
__tablename__ = "images"
|
|
|
|
id: uuid.UUID = Column("id", UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
|
resource_id: uuid.UUID = Column("resource_id", UUID(as_uuid=True), nullable=False)
|
|
resource_type: str = Column("resource_type", Unicode(255), nullable=False)
|
|
image: bytes = Column("image", BYTEA, nullable=False)
|
|
thumbnail: bytes = Column("thumbnail", BYTEA, nullable=False)
|
|
creation_date: datetime = Column("creation_date", DateTime(), nullable=False)
|
|
|
|
def __init__(
|
|
self,
|
|
resource_id: uuid.UUID,
|
|
resource_type: str,
|
|
image: bytes,
|
|
thumbnail: bytes,
|
|
creation_date: Optional[datetime] = None,
|
|
id_: Optional[uuid.UUID] = None,
|
|
) -> None:
|
|
self.resource_id = resource_id
|
|
self.resource_type = resource_type
|
|
self.image = image
|
|
self.thumbnail = thumbnail
|
|
self.creation_date = creation_date or datetime.utcnow()
|
|
if id_ is not None:
|
|
self.id = id_
|