brewman/brewman/brewman/models/db_image.py

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_