mirror of
https://github.com/TronoSfera/Law.git
synced 2026-05-18 10:03:45 +03:00
43 lines
914 B
Python
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
|