giga_tcg/schemas/file.py

29 lines
730 B
Python

from pydantic import BaseModel, Field
from datetime import datetime
from typing import Optional
from schemas.base import BaseSchema
from fastapi import UploadFile
# For additional metadata about the upload
class FileMetadata(BaseModel):
source: str = Field(..., title="Source")
type: str = Field(..., title="Type")
# optional
service: Optional[str] = Field(None, title="Service")
# For the response after upload
class FileUploadResponse(BaseSchema):
id: str
filename: str
type: str
file_size_kb: float
source: str
status: str
service: str
class FileDeleteResponse(BaseModel):
id: str
status: str
class GetPreparedFilesResponse(BaseModel):
files: list[FileUploadResponse]