115 lines
2.1 KiB
Python
115 lines
2.1 KiB
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class EmojiResponse(BaseModel):
|
|
"""表情包响应"""
|
|
|
|
id: int
|
|
full_path: str
|
|
emoji_hash: str
|
|
description: str
|
|
query_count: int
|
|
is_registered: bool
|
|
is_banned: bool
|
|
emotion: Optional[str]
|
|
record_time: float
|
|
register_time: Optional[float]
|
|
last_used_time: Optional[float]
|
|
|
|
|
|
class EmojiListResponse(BaseModel):
|
|
"""表情包列表响应"""
|
|
|
|
success: bool
|
|
total: int
|
|
page: int
|
|
page_size: int
|
|
data: List[EmojiResponse]
|
|
|
|
|
|
class EmojiDetailResponse(BaseModel):
|
|
"""表情包详情响应"""
|
|
|
|
success: bool
|
|
data: EmojiResponse
|
|
|
|
|
|
class EmojiUpdateRequest(BaseModel):
|
|
"""表情包更新请求"""
|
|
|
|
description: Optional[str] = None
|
|
is_registered: Optional[bool] = None
|
|
is_banned: Optional[bool] = None
|
|
emotion: Optional[str] = None
|
|
|
|
|
|
class EmojiUpdateResponse(BaseModel):
|
|
"""表情包更新响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
data: Optional[EmojiResponse] = None
|
|
|
|
|
|
class EmojiDeleteResponse(BaseModel):
|
|
"""表情包删除响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
|
|
|
|
class BatchDeleteRequest(BaseModel):
|
|
"""批量删除请求"""
|
|
|
|
emoji_ids: List[int]
|
|
|
|
|
|
class BatchDeleteResponse(BaseModel):
|
|
"""批量删除响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
deleted_count: int
|
|
failed_count: int
|
|
failed_ids: List[int] = []
|
|
|
|
|
|
class EmojiUploadResponse(BaseModel):
|
|
"""表情包上传响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
data: Optional[EmojiResponse] = None
|
|
|
|
|
|
class ThumbnailCacheStatsResponse(BaseModel):
|
|
"""缩略图缓存统计响应"""
|
|
|
|
success: bool
|
|
cache_dir: str
|
|
total_count: int
|
|
total_size_mb: float
|
|
emoji_count: int
|
|
coverage_percent: float
|
|
|
|
|
|
class ThumbnailCleanupResponse(BaseModel):
|
|
"""缩略图清理响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
cleaned_count: int
|
|
kept_count: int
|
|
|
|
|
|
class ThumbnailPreheatResponse(BaseModel):
|
|
"""缩略图预热响应"""
|
|
|
|
success: bool
|
|
message: str
|
|
generated_count: int
|
|
skipped_count: int
|
|
failed_count: int
|