from datetime import datetime, timezone

from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String, Text
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import relationship

from src.core.models.base import Base

from sqlalchemy import Enum
from sqlalchemy import Enum as SAEnum
from collections import defaultdict
from src.apps.files.schemas.file import FileResponseSchema

class DownloadFiles(Base):
    __tablename__ = "download_files"

    id = Column(Integer, primary_key=True, index=True)
    file_id = Column(Integer, ForeignKey("files.id"), nullable=False)
    created_at = Column(DateTime, default=datetime.now(timezone.utc))
    updated_at = Column(DateTime, default=datetime.now(timezone.utc), onupdate=datetime.now(timezone.utc))
    deleted_at = Column(DateTime, nullable=True)
    file_type = Column(String(100), nullable=True)
    file = relationship("File")