Law/app/schemas/uploads.py
2026-02-23 15:20:00 +03:00

43 lines
914 B
Python

from __future__ import annotations
from enum import Enum
from typing import Optional
from pydantic import BaseModel
class UploadScope(str, Enum):
REQUEST_ATTACHMENT = "REQUEST_ATTACHMENT"
USER_AVATAR = "USER_AVATAR"
class UploadInitPayload(BaseModel):
file_name: str
mime_type: str
size_bytes: int
scope: UploadScope
request_id: Optional[str] = None
user_id: Optional[str] = None
class UploadInitResponse(BaseModel):
method: str = "PRESIGNED_PUT"
key: str
presigned_url: str
class UploadCompletePayload(BaseModel):
key: str
file_name: str
mime_type: str
size_bytes: int
scope: UploadScope
request_id: Optional[str] = None
message_id: Optional[str] = None
user_id: Optional[str] = None
class UploadCompleteResponse(BaseModel):
status: str = "ok"
attachment_id: Optional[str] = None
avatar_url: Optional[str] = None