2025-02-07 20:29:39 -05:00

51 lines
1.7 KiB
Python

from pydantic import BaseModel, Field, ConfigDict
from typing import Optional
from datetime import datetime
# FILE
class FileSchema(BaseModel):
id: str = Field(..., title="id")
filename: str = Field(..., title="filename")
type: str = Field(..., title="type")
filesize_kb: float = Field(..., title="filesize_kb")
source: str = Field(..., title="source")
status: str = Field(..., title="status")
service: Optional[str] = Field(None, title="service")
date_created: datetime = Field(..., title="date_created")
date_modified: datetime = Field(..., title="date_modified")
# This enables ORM mode
model_config = ConfigDict(from_attributes=True)
# CREATE
# REQUEST
class CreateFileRequest(BaseModel):
source: str = Field(..., title="source")
type: str = Field(..., title="type")
# optional
service: Optional[str] = Field(None, title="Service")
filename: Optional[str] = Field(None, title="Filename")
# RESPONSE
class CreateFileResponse(BaseModel):
status_code: int = Field(..., title="status_code")
success: bool = Field(..., title="success")
files: list[FileSchema] = Field(..., title="files")
# GET
# RESPONSE
class GetFileResponse(BaseModel):
status_code: int = Field(..., title="status_code")
success: bool = Field(..., title="success")
files: list[FileSchema] = Field(..., title="files")
# QUERY PARAMS
class GetFileQueryParams(BaseModel):
status: Optional[str] = Field(None, title="status")
# DELETE
# RESPONSE
class DeleteFileResponse(BaseModel):
status_code: int = Field(..., title="status_code")
success: bool = Field(..., title="success")
files: list[FileSchema] = Field(..., title="files")