from main.services.custom_sqlalchemy_types import UtcNow
from setup import DATABASE
from sqlalchemy import TIMESTAMP, Column, LargeBinary, String, Integer
import base64
import mimetypes

class NewsArticleImage(DATABASE.Model):
    __tablename__ = 'news_article_images'

    id              = Column("id", Integer, primary_key=True)
    key             = Column("key", String, nullable=False, unique=True)
    image_data      = Column("image_data", LargeBinary, nullable=False)
    created_at      = Column("created_at", TIMESTAMP(timezone=False), server_default=UtcNow(), nullable=False)
    created_by_id   = Column("created_by_id", Integer, nullable=False)

    def __init__(self, key, image_data, created_by_id):
        self.key = key
        self.image_data = base64.b64decode(image_data)
        self.created_by_id = created_by_id

    @property
    def mimetype(self):
        return mimetypes.guess_type(self.key)[0]
