GIGA FIXED EVERYTHING OMG

This commit is contained in:
2025-02-04 22:30:33 -05:00
parent 85510a4671
commit bd9cfca7a9
14 changed files with 1182 additions and 101 deletions

View File

@@ -1,29 +1,51 @@
from pydantic import BaseModel, Field
from datetime import datetime
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional
from schemas.base import BaseSchema
from fastapi import UploadFile
from datetime import datetime
# For additional metadata about the upload
class FileMetadata(BaseModel):
source: str = Field(..., title="Source")
type: str = Field(..., title="Type")
# 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")
# For the response after upload
class FileUploadResponse(BaseSchema):
id: str
filename: str
type: str
file_size_kb: float
source: str
status: str
service: str
# RESPONSE
class CreateFileResponse(BaseModel):
status_code: int = Field(..., title="status_code")
success: bool = Field(..., title="success")
files: list[FileSchema] = Field(..., title="files")
class FileDeleteResponse(BaseModel):
id: str
status: str
# 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")
class GetPreparedFilesResponse(BaseModel):
files: list[FileUploadResponse]
# DELETE
# RESPONSE
class DeleteFileResponse(BaseModel):
status_code: int = Field(..., title="status_code")
success: bool = Field(..., title="success")
files: list[FileSchema] = Field(..., title="files")

19
schemas/order.py Normal file
View File

@@ -0,0 +1,19 @@
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional
from datetime import datetime
# FILE
class OrderSchema(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)