file.py 696 B

123456789101112131415161718
  1. from typing import Optional
  2. from sqlalchemy import Index, Column, Enum
  3. from sqlmodel import Field
  4. from app.models.base_model import BaseModel, TimeStampMixin, PrimaryKeyMixin
  5. class File(BaseModel, PrimaryKeyMixin, TimeStampMixin, table=True):
  6. __table_args__ = (Index("file_purpose_idx", "purpose"),)
  7. bytes: int = Field(nullable=False)
  8. filename: str = Field(nullable=False)
  9. purpose: str = Field(nullable=False)
  10. object: str = Field(nullable=False, default="file")
  11. key: str = Field(nullable=False)
  12. status: Optional[str] = Field(default=None, sa_column=Column("status", Enum("error", "processed", "uploaded")))
  13. status_details: Optional[str] = Field(default=None)